试图找出一个好的数据库设计

时间:2015-11-11 16:19:42

标签: mysql sql database-design

好的,这是我的问题我正在尝试为类项目设计数据库。我很难弄清楚如何将一张桌子与另一张桌子联系起来。在这种情况下,我试图拥有一个可以代表几个不同项目的主键。就像一个代表肉类爱好者,素食爱好者和奶酪比萨饼的单个PizzaOrderID。都有不同数量的比萨饼。有人可以帮我解决一下我可以设置这个设计的方法吗?

编辑:

第三范式

客户

客户ID→主键

名字姓氏街道地址公寓城市州邮政编码家庭电话手机其他电话

甜甜圈

甜甜圈ID→主键

名称说明

甜甜圈订单

甜甜圈订单ID→主键

甜甜圈ID→外键

数量单价

订单销售

订单→主键

甜甜圈订单ID→外键

好吧,这就是我的第三张普通表格,因为你可以看到我正在处理的确切项目是甜甜圈,我猜我需要调整此表格

1 个答案:

答案 0 :(得分:1)

让我们从头开始。您有一张代表膳食的表格,您显然称之为披萨,此表格中有一个主键 pizza_id 。 (我使用_表示可读性)。这种餐可以在餐厅餐桌上订购,方法是将订单存储在主键 order_id 的另一个表中。

到目前为止一切顺利。现在订单可以是一个披萨,两个或更多。此外,订单可以包含更多相同的比萨饼!显然你的设计需要覆盖这个,解决方案是N:M(多对多)关系。

这是在名为 orderitem 的第三个表格中完成的,其中包含复合主键(由两列组成) pizza_id order_id 即可。这两个同时是指向各自表的外键。由于额外的栏目可以放入相同数量的膳食。