Mysql 我的数据库模型的有效性

Mysql 我的数据库模型的有效性,mysql,sql,database-design,relational-database,Mysql,Sql,Database Design,Relational Database,在此设计之前,我的数据库模型没有orderProducts,这意味着products和orders之间存在多对多关系,因为“orderProducts”中的所有字段都在orders中。。我是否使用连接表正确解决了此问题?此外,我不确定如何将userType表与表关联。谢谢 orderProducts表的解析很有意义,尽管您可以不使用productName(因为它可以来自产品表)以减少数据冗余。同样,价格也可以在产品表中 关于将用户关联到现有表中,考虑用户和订单之间的关系-大概每个用户都可以有多个

在此设计之前,我的数据库模型没有
orderProducts
,这意味着
products
orders
之间存在多对多关系,因为“orderProducts”中的所有字段都在orders中。。我是否使用连接表正确解决了此问题?此外,我不确定如何将
userType
表与表关联。谢谢

orderProducts表的解析很有意义,尽管您可以不使用productName(因为它可以来自产品表)以减少数据冗余。同样,价格也可以在产品表中


关于将用户关联到现有表中,考虑用户和订单之间的关系-大概每个用户都可以有多个订单,但是每个订单只有一个用户,所以从一个用户到另一个用户有一对多关系,并且可以将用户ID作为订单表中的FK。

使用orderProducts表进行解析很有意义,不过您可以将productName排除在外(因为它可以来自产品表)以减少数据冗余。同样,价格也可以在产品表中


关于将用户关联到现有表中,考虑用户和订单之间的关系-大概每个用户都可以有多个订单,但是每个订单只有一个用户,所以从一个用户到另一个用户有一对多关系,并且可以将用户ID作为订单表中的FK。

将类似用户ID的内容添加到orderProducts表中,然后您应该能够根据需要使用SQL JOIN


在orderProducts表中添加类似UserID的内容,然后您应该能够根据需要使用SQL JOIN


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

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


请注意,表名应为单数(用户、订单等)

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

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


请注意,表名应为单数(用户、顺序等)

如果没有与“UserType”相同的字段,例如外键关系,则不确定如何加入“UserType”。用户ID必须位于OrderProducts表或其中一个相关表中才能正常工作。如果没有与“UserType”相同的其他字段,例如外键关系,则不确定如何联接该字段。用户ID需要位于OrderProducts表或其中一个相关表中才能正常工作。感谢@Stidgeon这对我帮助很大。感谢@Stidgeon这对我帮助很大。