这个SQL模式有什么问题?

5 mysql sql database-design

我正在设计我的第一个MySQL数据库,这里的想法是我们有可以包含多个不同项目的订单.所以我决定将所有相关信息存储在一个表中,将项目存储在另一个表中,然后创建第三个表,其中存储每个订购的项目.当然,每当我需要列出订单时,我首先必须找到每个OrderedItemsID,其订单ID与我需要的订单ID相同,并且与项目匹配.

既然这是我的第一个数据库设计,我并不会觉得这是一个很好的解决方案,所以我想知道是否有人知道这个问题的一个很好的解决方案?谢谢

图片位于http://img211.imageshack.us/img211/5575/stackoverflowq.png

Rus*_*rry 4

这个解决方案很好,不过,在订单表中我会输入总价、税金和运费。这样您就不必转到 OrderItems 表来获取总计。

此外,您需要将商品中的所有内容存储到 orderitem 表中。这将包括名称和描述。原因是为了问责。如果有人更改了表中某个项目的名称,那么这实际上会改变每个人的收据。而你不想那样做。

基本上来说,订单表中的所有信息都不需要依赖于实际的商品表。

您还可以进一步添加帐单和送货地址,这样如果用户将来更改此地址,该特定订单就不会更改。