订单系统MySQL工作台中的数据库建模
我试图在MySQL Workbench中建模一个简单的订单系统,但在规范化方面遇到了一些问题。现在,我正在使用WHERE id=x、另一个_id=x等等来构建一个查询。我的系统相当简单:订单系统MySQL工作台中的数据库建模,mysql,mysql-workbench,Mysql,Mysql Workbench,我试图在MySQL Workbench中建模一个简单的订单系统,但在规范化方面遇到了一些问题。现在,我正在使用WHERE id=x、另一个_id=x等等来构建一个查询。我的系统相当简单: 用户表 订单表 用户订单表 产品表 一个用户有许多订单,一个订单有许多产品。就这样。如何在MySQL工作台中定义这种关系?有关于HasMany、HasOne和其他类型关系的教程吗 在大多数情况下,您的设置是正常的。但是,一对多映射不需要映射表。例如,单个订单不太可能属于多个用户,而一个订单项可能属于多个订单
- 用户表
- 订单表
- 用户订单表
- 产品表
在大多数情况下,您的设置是正常的。但是,一对多映射不需要映射表。例如,单个订单不太可能属于多个用户,而一个订单项可能属于多个订单。这意味着您的表应该是:
- 用户(用户ID)
- 订单(订单ID、用户ID)
- OrdersItems(oiid、orderid、productid)
- 产品(产品ID)
UserOrder
表不同,您最好将FK存储到Order
表本身中的相关用户;像UserOrder
这样的关联表仅对多对多关系是必需的,例如您需要在Order
和Product
之间建立关联表-因此您需要一个OrderProducts
表。但用户确实可以下很多订单。并且它们的FK可以多次出现在Order
表中(前提是您不去定义FK上的唯一性约束)。是否有更好的方法插入到表中?例如:我必须插入到订单中,然后插入到订单中的项目。@vinnylinux使用事务