Dre*_*her 2 mysql database-design
我需要一些帮助来设计订餐系统的数据库。
客户
Customer_id (PK)
客户_姓名 客户
_电话号码
付款方式(现金/信用卡)
付款状态(已付款/未付款)
电子邮件地址
员工_id (外籍)
订单F_id (外籍)
订单D_id (外籍)
员工
Employee_id (PK)
员工姓名
员工职位
员工年龄
员工电话号码
密码
食物
Food_id (PK)
Food_name
Food_size
Food_price (描述每种食物的价格)
饮料
Drink_id (PK)
Drink_name
Drink_size
Drink_category(解释热/冷)
Drink_price(描述每种饮料的价格)
OrderFood
OrderF_id (PK)
Customer_id (FK)
Employee_id (FK)
Food_id (FK)
Quantity_item
Total_price
订单饮料
OrderD_id (PK)
Employee_id (FK)
Drink_id (FK)
Quantity_item
Total_Price
我应该如何使客户可以在 OrderFood 和 OrderDrinks 表中订购不同类型、不同数量的食物?
我应该分别重复 OrderFood 和 OrderDrinks 中的 Food_price 和 Drink_price 吗?
对于员工密码,如何将长度限制在6-15个字符之间?(我想过使用varchar,但它也允许1个字符作为员工的密码。)
1) 首先,从客户表和购买字段中删除外键。然后创建一个与此类似的订单表
Orders
id
CustomerId (FK)
EmployeeId (FK)
PurchaseMethod
PurchaseStatus
TimeStamp
TotalPrice
Run Code Online (Sandbox Code Playgroud)
然后,您将创建一个关联表,将您的订单链接到食品和饮料项目。使用此表,您可以根据需要将任意数量的食品链接到订单。
FoodOrders
id
OrderId (FK)
FoodId (FK)
Quantity
TotalPrice
Run Code Online (Sandbox Code Playgroud)
为您的饮料订单创建一个类似的表。
下订单时必须计算总计列。
2) 仅在您的业务流程需要时才重复价格数据。最好的方法是如果可以避免的话不重复数据
3) 取决于所使用的数据库,SQL Server 有 CHECK 约束,您可以与 Len() 一起使用来限制最小大小
| 归档时间: |
|
| 查看次数: |
37816 次 |
| 最近记录: |