跳至主要內容

餐厅管理系统

holic-x...大约 6 分钟碎片化数据库碎片化

餐厅管理系统

​ 数据库设计:CDM&PDM设计

实体定义

<1>系统管理员信息表(sys_admin)

字段名字段值数据类型是否主键可否为空注释
管理员编号admin_numvarchar(10)管理员编号
管理员账号admin_accountvarchar(10)管理员账号
姓名admin_namevarchar(10)姓名
密码admin_pwdvarchar(10)密码
登入时间login_timedatetime登入时间
登出时间loginout_timedatetime登出时间

<2>用户(客户)信息表(cust_user)

字段名字段值数据类型是否主键可否为空注释
用户编号user_numvarchar(10)用户编号
用户账号user_accountvarchar(20)用户账号
姓名user_namevarchar(12)姓名
密码user_pwdvarchar(25)密码

<3>餐桌信息(table)

字段名字段值数据类型是否主键可否为空注释
餐桌号table_numvarchar(4)餐桌号
餐桌名table_namevarchar(15)餐桌名
餐桌当前状态table_statusvarchar(8)餐桌当前状态

<4>菜谱信息(menu)

字段名字段值数据类型是否主键可否为空注释
编号menu_numchar(10)菜谱编号
名称menu_namevarchar(10)菜谱名
类别menu_typevarchar(10)菜谱类别
描述menu_descrvarchar(255)菜谱的描述
图片menu_picvarchar(20)菜谱的样图
价格menu_pricedecimal(8,2)菜谱价格
库存menu_stockvarchar(15)库存量

<5>职员信息表(staff)

字段名字段值数据类型是否主键可否为空注释
工号work_numchar(10)工号
员工专用账号menu_namevarchar(10)员工专用账号
姓名staff_namevarchar(10)姓名
性别staff_sexchar(2)性别
岗位staff_postvarchar(10)岗位
身份证号staff_idchar(18)身份证号
联系电话staff_phonevarchar(20)联系电话
文化程度staff_educationvarchar(20)文化程度

<6>账单信息(bill)

​ 账单信息关联的数据可以考虑通过外键进行关联,也可考虑直接作为静态数据存储

字段名字段值数据类型是否主键可否为空注释
账单编号bill_numchar(10)账单流水号
餐桌信息relate_tablechar(10)对应餐桌信息
点菜信息relate_menu_numvarchar(10)点菜信息
(此处需考虑是否要对菜谱信息进行拆分)
客户信息relate_uservarchar(10)客户信息(对应客户编号)
操作员operatorvarchar(10)操作员(对应操作员工ID)
账单生成时间create_timedatetime账单生成时间

关联表定义

(针对信息变更历史记录也可考虑将其归集到一个表通过状态加以区分,这边为了更加明确是哪种数据变更对历史数据表做了拆分,也便于作相应的数据调整和字段调整),此处介绍状态表概念进行归集

<1>数据表更历史记录(data_change_history)

字段名字段值数据类型是否主键可否为空注释
历史记录iddata_idvarchar(10)历史记录id
数据变更类型change_typevarchar(10)设定状态标识对应的是哪种数据变更:
0-餐桌信息表更
1-菜谱信息变更
2-职员信息变更
3-用户(顾客)信息变更
4-....以此类推
对应变更数据记录IDchange_datavarchar(10)餐桌信息表更:对应餐桌号
菜谱信息变更:对应菜谱菜谱编号
职员信息变更:对应职员编号
用户(顾客)信息变更:对应用户编号
变更内容change_contentvarchar(10)对应变更内容描述
变更者operatorvarchar(10)操作者信息(对应操作者ID或账号)
变更时间change_timedatetime数据变更时间

<2>扩展

餐桌信息表更历史记录(table_change_history)

菜谱信息变更历史记录(menu_change_history)

职员信息变更历史记录(staff_change_history)

用户(顾客)信息变更历史记录(cust_user_change_history)

以此类推进行扩展

系统逻辑结构设计

转换关系模型:暂不设定权限相关(权限可以考虑独立于基本系统功能之外的扩展向)

系统管理员:
用户:
餐桌:
菜谱:
职员:
数据变更记录:

PS:逻辑结构设计的内容,则可参考上述实体设计进行调整,实际上队管理员的分类就是对管理员账号权限的拆分,不需要拆表去存储,此处建议通过权限设定的方式去控制~

参考上述功能说明,勾勒CDM简图,参考如下:

PDM:

​ 通过业务逻辑关联处理主外键的关系,此处没有通过pd直接生成数据库,而是手动在数据库创建相关的表,通过业务逻辑进行关联,参考sql语句如下


-- ----------------------------
-- Table structure for bill
-- ----------------------------
DROP TABLE "bill";
CREATE TABLE "bill" (
"bill_num" VARCHAR2(10 BYTE) NULL ,
"relate_table" VARCHAR2(10 BYTE) NULL ,
"relate_menu_num" NUMBER(10) NULL ,
"relate_user" VARCHAR2(10 BYTE) NULL ,
"operator" VARCHAR2(10 BYTE) NULL ,
"create_time" DATE NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;
COMMENT ON COLUMN "bill"."bill_num" IS '账单编号';
COMMENT ON COLUMN "bill"."relate_table" IS '餐桌信息';
COMMENT ON COLUMN "bill"."relate_menu_num" IS '点菜信息';
COMMENT ON COLUMN "bill"."relate_user" IS '客户信息';
COMMENT ON COLUMN "bill"."operator" IS '操作员';
COMMENT ON COLUMN "bill"."create_time" IS '账单生成时间';

-- ----------------------------
-- Records of bill
-- ----------------------------

-- ----------------------------
-- Table structure for cust_user
-- ----------------------------
DROP TABLE "cust_user";
CREATE TABLE "cust_user" (
"user_num" VARCHAR2(10 BYTE) NULL ,
"user_account" VARCHAR2(20 BYTE) NULL ,
"user_name" VARCHAR2(12 BYTE) NULL ,
"user_pwd" VARCHAR2(25 BYTE) NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;
COMMENT ON COLUMN "cust_user"."user_num" IS '用户编号';
COMMENT ON COLUMN "cust_user"."user_account" IS '用户账号';
COMMENT ON COLUMN "cust_user"."user_name" IS '姓名';
COMMENT ON COLUMN "cust_user"."user_pwd" IS '密码';

-- ----------------------------
-- Records of cust_user
-- ----------------------------

-- ----------------------------
-- Table structure for menu
-- ----------------------------
DROP TABLE "menu";
CREATE TABLE "menu" (
"menu_num" VARCHAR2(10 BYTE) NULL ,
"menu_name" VARCHAR2(10 BYTE) NULL ,
"menu_type" VARCHAR2(10 BYTE) NULL ,
"menu_descr" VARCHAR2(255 BYTE) NULL ,
"menu_pic" VARCHAR2(20 BYTE) NULL ,
"menu_price" NUMBER(8) NULL ,
"menu_stock" VARCHAR2(255 BYTE) NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;
COMMENT ON COLUMN "menu"."menu_num" IS '编号';
COMMENT ON COLUMN "menu"."menu_name" IS '名称';
COMMENT ON COLUMN "menu"."menu_type" IS '类别';
COMMENT ON COLUMN "menu"."menu_descr" IS '描述';
COMMENT ON COLUMN "menu"."menu_pic" IS '图片';
COMMENT ON COLUMN "menu"."menu_price" IS '价格';
COMMENT ON COLUMN "menu"."menu_stock" IS '库存';

-- ----------------------------
-- Records of menu
-- ----------------------------

-- ----------------------------
-- Table structure for staff
-- ----------------------------
DROP TABLE "staff";
CREATE TABLE "staff" (
"work_num" VARCHAR2(10 BYTE) NULL ,
"staff_account" VARCHAR2(10 BYTE) NULL ,
"staff_name" VARCHAR2(10 BYTE) NULL ,
"staff_sex" VARCHAR2(2 BYTE) NULL ,
"staff_post" VARCHAR2(10 BYTE) NULL ,
"staff_id" VARCHAR2(18 BYTE) NULL ,
"staff_phone" VARCHAR2(20 BYTE) NULL ,
"staff_education" VARCHAR2(20 BYTE) NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;
COMMENT ON COLUMN "staff"."work_num" IS '工号';
COMMENT ON COLUMN "staff"."staff_account" IS '员工专用账号';
COMMENT ON COLUMN "staff"."staff_name" IS '姓名';
COMMENT ON COLUMN "staff"."staff_sex" IS '性别';
COMMENT ON COLUMN "staff"."staff_post" IS '岗位';
COMMENT ON COLUMN "staff"."staff_id" IS '身份证号';
COMMENT ON COLUMN "staff"."staff_phone" IS '联系电话';
COMMENT ON COLUMN "staff"."staff_education" IS '文化程度';

-- ----------------------------
-- Records of staff
-- ----------------------------

-- ----------------------------
-- Table structure for sys_admin
-- ----------------------------
DROP TABLE "sys_admin";
CREATE TABLE "sys_admin" (
"admin_num" VARCHAR2(10 BYTE) NULL ,
"admin_account" VARCHAR2(10 BYTE) NULL ,
"admin_name" VARCHAR2(10 BYTE) NULL ,
"admin_pwd" VARCHAR2(10 BYTE) NULL ,
"login_time" DATE NULL ,
"loginout_time" DATE NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;
COMMENT ON COLUMN "sys_admin"."admin_num" IS '管理员编号';
COMMENT ON COLUMN "sys_admin"."admin_account" IS '管理员账号';
COMMENT ON COLUMN "sys_admin"."admin_name" IS '姓名';
COMMENT ON COLUMN "sys_admin"."admin_pwd" IS '密码';
COMMENT ON COLUMN "sys_admin"."login_time" IS '登入时间';
COMMENT ON COLUMN "sys_admin"."loginout_time" IS '登出时间';

-- ----------------------------
-- Records of sys_admin
-- ----------------------------

-- ----------------------------
-- Table structure for table
-- ----------------------------
DROP TABLE "table";
CREATE TABLE "table" (
"table_num" VARCHAR2(4 BYTE) NULL ,
"table_name" VARCHAR2(15 CHAR) NULL ,
"table_status" VARCHAR2(8 BYTE) NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;
COMMENT ON COLUMN "table"."table_num" IS '餐桌号';
COMMENT ON COLUMN "table"."table_name" IS '餐桌名';
COMMENT ON COLUMN "table"."table_status" IS '餐桌当前状态';

-- ----------------------------
-- Records of table
-- ----------------------------

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3