20260702215426
This commit is contained in:
1 parent
2bbeea19fa
commit
d0f7f0d3d8
39 files changed
+8341
-2049
No files matched your search
+226
-1
@@ -1,5 +1,94 @@
|
||||
drop table if exists b_meal_dish_step;
|
||||
-- ============================================================
|
||||
-- 餐食模块 数据库表结构
|
||||
-- ============================================================
|
||||
|
||||
drop table if exists b_meal_dish_tag;
|
||||
drop table if exists b_meal_dish_ingredient;
|
||||
drop table if exists b_meal_dish_step;
|
||||
drop table if exists b_meal_plan_log;
|
||||
drop table if exists b_meal_plan_item;
|
||||
drop table if exists b_meal_plan;
|
||||
drop table if exists b_meal_dish;
|
||||
drop table if exists b_meal_category;
|
||||
drop table if exists b_meal_tag;
|
||||
drop table if exists b_meal_slot;
|
||||
|
||||
-- ============================================================
|
||||
-- 菜品
|
||||
-- ============================================================
|
||||
create table b_meal_dish (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
name varchar(64) not null,
|
||||
image_file_key varchar(512) not null,
|
||||
category_id bigint,
|
||||
ingredient_summary varchar(512) default '',
|
||||
cooking_time_minutes int default 0,
|
||||
difficulty smallint default 0,
|
||||
remark varchar(512) default '',
|
||||
status smallint not null default 1,
|
||||
sort_number int not null default 0,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 菜品分类
|
||||
-- ============================================================
|
||||
create table b_meal_category (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
name varchar(32) not null,
|
||||
sort_number int not null default 0,
|
||||
status smallint not null default 1,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 标签(父子结构)
|
||||
-- parent_id 为空表示父标签,指向父标签表示子标签
|
||||
-- ============================================================
|
||||
create table b_meal_tag (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
parent_id bigint,
|
||||
name varchar(32) not null,
|
||||
color varchar(7) default '',
|
||||
sort_number int not null default 0,
|
||||
status smallint not null default 1,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 菜品食材明细
|
||||
-- ============================================================
|
||||
create table b_meal_dish_ingredient (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
dish_id bigint not null,
|
||||
name varchar(64) not null,
|
||||
quantity numeric(10, 2),
|
||||
unit varchar(16) default '',
|
||||
spec varchar(64) default '',
|
||||
remark varchar(128) default '',
|
||||
sort_number int not null default 0,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 菜品步骤
|
||||
-- ============================================================
|
||||
create table b_meal_dish_step (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
@@ -14,5 +103,141 @@ create table b_meal_dish_step (
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 菜品标签关联
|
||||
-- ============================================================
|
||||
create table b_meal_dish_tag (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
dish_id bigint not null,
|
||||
tag_id bigint not null,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 餐段
|
||||
-- ============================================================
|
||||
create table b_meal_slot (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
name varchar(32) not null,
|
||||
sort_number int not null default 0,
|
||||
status smallint not null default 1,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 餐食安排
|
||||
-- 同一个家庭、同一天、同一个餐段只有一条记录
|
||||
-- ============================================================
|
||||
create table b_meal_plan (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
plan_date date not null,
|
||||
meal_slot_id bigint not null,
|
||||
remark varchar(512) default '',
|
||||
cook_by bigint,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 餐食安排明细
|
||||
-- ============================================================
|
||||
create table b_meal_plan_item (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
plan_id bigint not null,
|
||||
dish_id bigint not null,
|
||||
quantity int not null default 1,
|
||||
remark varchar(256) default '',
|
||||
sort_number int not null default 0,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 餐食活动日志
|
||||
-- type: 1=安排餐食, 2=加菜, 3=移除菜, 4=备注, 5=设置做饭人
|
||||
-- ============================================================
|
||||
create table b_meal_plan_log (
|
||||
id bigint primary key,
|
||||
family_id bigint not null,
|
||||
plan_id bigint not null,
|
||||
type smallint not null,
|
||||
content varchar(1024) default '',
|
||||
ref_id bigint,
|
||||
create_time timestamp,
|
||||
update_time timestamp,
|
||||
create_by bigint,
|
||||
update_by bigint
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 索引
|
||||
-- ============================================================
|
||||
|
||||
-- 菜品:按家庭、状态、分类查询
|
||||
create index idx_b_meal_dish_family_status_category
|
||||
on b_meal_dish (family_id, status, category_id, sort_number, id);
|
||||
|
||||
-- 菜品分类:按家庭、状态查询
|
||||
create index idx_b_meal_category_family_status
|
||||
on b_meal_category (family_id, status, sort_number, id);
|
||||
|
||||
-- 标签:按家庭、状态、父标签查询
|
||||
create index idx_b_meal_tag_family_status_parent
|
||||
on b_meal_tag (family_id, status, parent_id, sort_number, id);
|
||||
|
||||
-- 食材:按菜品查询
|
||||
create index idx_b_meal_dish_ingredient_dish
|
||||
on b_meal_dish_ingredient (family_id, dish_id, sort_number, id);
|
||||
|
||||
-- 步骤:按菜品查询
|
||||
create index idx_b_meal_dish_step_dish
|
||||
on b_meal_dish_step (family_id, dish_id, sort_number, step_number, id);
|
||||
|
||||
-- 菜品标签关联:按菜品和按标签查询
|
||||
create index idx_b_meal_dish_tag_dish
|
||||
on b_meal_dish_tag (family_id, dish_id, tag_id);
|
||||
|
||||
create index idx_b_meal_dish_tag_tag
|
||||
on b_meal_dish_tag (family_id, tag_id, dish_id);
|
||||
|
||||
-- 餐段:按家庭、状态查询
|
||||
create index idx_b_meal_slot_family_status
|
||||
on b_meal_slot (family_id, status, sort_number, id);
|
||||
|
||||
-- 餐食安排:按家庭、日期、餐段唯一查询
|
||||
create index idx_b_meal_plan_family_date_slot
|
||||
on b_meal_plan (family_id, plan_date, meal_slot_id);
|
||||
|
||||
-- 餐食安排:按家庭、日期范围查询(历史查看)
|
||||
create index idx_b_meal_plan_family_date
|
||||
on b_meal_plan (family_id, plan_date, id);
|
||||
|
||||
-- 餐食安排明细:按安排查询
|
||||
create index idx_b_meal_plan_item_plan
|
||||
on b_meal_plan_item (family_id, plan_id, sort_number, id);
|
||||
|
||||
-- 餐食安排明细:按菜品反查
|
||||
create index idx_b_meal_plan_item_dish
|
||||
on b_meal_plan_item (family_id, dish_id, plan_id);
|
||||
|
||||
-- 活动日志:按安排和时间轴查询
|
||||
create index idx_b_meal_plan_log_plan
|
||||
on b_meal_plan_log (family_id, plan_id, create_time, id);
|
||||
|
||||
-- 活动日志:按安排和类型筛选
|
||||
create index idx_b_meal_plan_log_plan_type
|
||||
on b_meal_plan_log (family_id, plan_id, type);
|
||||
Reference in new issue
Block a user