The Documents about Group Project of Software Analysis & Design
版本 | 日期 | 描述 | 作者 |
---|---|---|---|
V1.2 | 2019-6-22 | 修改稿 | Nathan |
本数据库设计说明文档旨在说明小欣餐饮点餐系统项目数据库的设计与功能,方便该系统的开发者与维护者更好地从事开发与维护项目工作。
说明:
a. 待开发数据库名称:小欣餐饮点餐系统数据库
b. 使用本系统的软件名称:小欣餐饮点餐系统
c. 软件系统开发项目任务提出者:王青/潘茂林
d. 用户:小欣餐饮开发团队与客户
e. 安装该软件和数据库的计算站:微信小程序平台、阿里云平台
数据表:数据库中的一个实体,在这里我们使用关系数据库,故一个实体对应一个表。
主键:一个数据库实体中可以确定一条记录的唯一标识。
外键:外键是在一个表中确定与另一个表的关联的键,能确定另一张表记录的字段,用于保持数据的一致性。
a. 《软件工程导论》张海藩 清华大学出版社
b. 软件设计文档国家标准 GB8567
本数据库中使用的标识符与 Python 相同,因其使用 Python 语言进行开发。
小欣餐饮后台管理系统 V1.1
小欣餐饮点餐系统 V1.1
数据库实体的属性命名一般采用下划线_
实体和属性的命名必须表意
向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,例如将被送入数据库的数据的格式和标准、送入数据库的操作规程和步骤,用于产生、修改、更新或使用这些数据文卷的操作指导。如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。
该数据库的数据格式如下
在使用数据库时数据格式需符合规范
Python sqlalchemy
mysql
本数据库中包含的实体有
字段 | status | create_time | update_time |
---|---|---|---|
描述 | 状态(删除与否) | 创建时间 | 用户姓名 |
数据类型 | int | DateTime | DateTime |
约束 | dfault 1 | dfault now | dfault now |
user数据表:
字段 | id | openid | username | sex | avator | |
---|---|---|---|---|---|---|
描述 | 用户编号 | 微信编号 | 用户姓名 | 邮箱 | 性别 | 图像 |
数据类型 | int | int | string | int | int | string |
约束 | pk | not null | default 1 |
Administrator数据表(继承user,表示餐厅管理员):
字段 | id | openid | username | sex | avator | password | rid | |
---|---|---|---|---|---|---|---|---|
描述 | 用户编号 | 微信编号 | 用户姓名 | 邮箱 | 性别 | 图像 | 密码(加密后的) | 餐厅编号 |
数据类型 | int | int | string | int | int | string | string | int |
约束 | pk | not null | default 1 | not null | foreign key, not null |
字段 | id | name | rid | weight |
---|---|---|---|---|
描述 | 编号 | 名称 | 餐厅编号 | 权重 |
数据类型 | int | string | int | int |
约束 | pk | not null | foreign key; not null | not null |
字段 | id | uid | did | oid | quantity |
---|---|---|---|---|---|
描述 | 编号 | 顾客编号 | 菜品编号 | 订单编号 | 数量 |
数据类型 | int | int | int | int | int |
约束 | pk | foreign key; not null | foreign key; not null | foreign key; not null | not null |
dish数据表:
字段 | id | name | rid | price | summary | stock | tag | main_image |
---|---|---|---|---|---|---|---|---|
描述 | 编号 | 名称 | 餐厅编号 | 价格 | 介绍 | 库存 | 标签 | 图片 |
数据类型 | int | string | int | number | string | string | int | string |
约束 | pk | not null | foreign key; not null | not null | not null | not null | not null | not null |
order数据表(订单):
字段 | id | uid | rid | total_price | pay_price | note | pay_time |
---|---|---|---|---|---|---|---|
描述 | 编号 | 顾客编号 | 餐厅编号 | 总价格 | 实际支付价格 | 备注 | 过期时间 |
数据类型 | int | int | int | number | number | string | DateTime |
约束 | pk | foreign key; not null | foreign key; not null | not null | not null | not null |
字段 | id | uid | rid | discount | expiration_date |
---|---|---|---|---|---|
描述 | 编号 | 顾客编号 | 餐厅编号 | 折扣价格 | 过期时间 |
数据类型 | int | int | int | number | DateTime |
约束 | pk | foreign key; not null | foreign key; not null | not null | not null |
字段 | id | did | unit | total_stock | note |
---|---|---|---|---|---|
描述 | 编号 | 菜品编号 | 数量 | 总库存 | 备注 |
数据类型 | int | int | int | int | string |
约束 | pk | foreign key; not null | not null | not null | not null |
字段 | id | uid | rid | content | |
---|---|---|---|---|---|
描述 | 编号 | 顾客编号 | 餐厅编号 | 折扣价格 | 内容 |
数据类型 | int | int | int | string | |
约束 | pk | foreign key; not null | foreign key; not null | not null |
字段 | id | name | summary | main_image |
---|---|---|---|---|
描述 | 编号 | 名称 | 介绍 | 图片url |
数据类型 | int | string | string | string |
约束 | pk | not null |
字段 | id | file_key |
---|---|---|
描述 | 编号 | 文件名 |
数据类型 | int | string |
约束 | pk | not null |
本数据库包含的关系如下所示
关系名 | x : y |
---|---|
Own | User : Cart = 1 : N |
Obtain | User : Coupon = 1 : N |
Is | User : Administrator = 1 : N |
Make | User : Order = 1 : N |
Refer to | Dish : Cart = 1 : N |
Manage | Administrator : Restaurant = 1 : N |
Cook | Restaurant : Dish = N : N |
Use | Order : Coupon = 1 : N |
Have | Order : Comment = 1 : 1 |
Maintain | Restaurant : FoodCat = 1 : N |
Has | Restaurant : FoodStockChangeLog = 1 : N |
Include | Order : Cart = 1 : N |
本数据库基于sqlalchemy与mysql,故无需考虑物理结构设计
本数据库中未涉及数据字典。
本数据库基于mysql,其安全属性由 mysql 提供保障。
在 User 数据表中,对每一个用户的密码都给予了加密处理,以确保用户密码的安全。
版本 | 日期 | 描述 | 作者 |
---|---|---|---|
V1.1 | 2019-5-31 | 初稿 | Nathan |
Own
User : Cart = 1 : 1
Obtain
User : Coupon = 1 : N
Is
User : Administrator = 1 : N
Make
User : Order = 1 : N
Live in
User : Address = N : N
Contain
Cart : Dish = N : N
Refer to
Dish : Order_Item = 1 : N
Locate
Restaurant : Address = 1 : 1
Manage
Administrator : Restaurant = 1 : N
Cook
Restaurant : Dish = N : N
Send to
Address : Order = 1 : 1
Include
Order : Order_Item = 1 : N
Use
Order : Coupon = 1 : N
Have
Order : Comment = 1 : 1
Cancel
Order : Order_callback = 1 : 1