我的数据库模型的有效性

时间:2016-02-23 18:49:34

标签: mysql sql database-design relational-database

在此设计之前,我的数据库模型没有orderProducts,这意味着productsorders之间存在多对多的关系,因为'orderProducts'中的所有字段都在订单..我是否使用联结表正确解决了这个问题?另外,我不确定如何将userType表与表关联起来。谢谢。 enter image description here

3 个答案:

答案 0 :(得分:0)

orderProducts表的分辨率很有意义,尽管您可以将productName保留在其中(因为它可以来自Product表)以减少数据冗余。同样,价格可以在产品表中。

至于将用户与现有表格相关联,请考虑用户与订单之间的关系 - 可能每个用户可以有多个订单,但每个订单只有一个用户,因此您与用户之间存在一对多的关系订单,并且可以在订单表中将user_ID作为FK。

答案 1 :(得分:0)

将类似UserID的内容添加到orderProducts表中,然后您应该可以根据需要使用SQL JOIN。

enter image description here

答案 2 :(得分:0)

正如Stidgeon所说,您需要在订单表中添加userID。由于orderID是唯一的,因此每个用户可以拥有多个订单。你不需要桥接这些表格。

您的userType表似乎是一个查找表,应该有一个userTypeID字段作为主键,而不是userID。然后将UserTypeID字段作为外键添加到用户表中。

请注意,表名应该是单数(用户,订单等)