好的,这是我的问题我正在尝试为类项目设计数据库。我很难弄清楚如何将一张桌子与另一张桌子联系起来。在这种情况下,我试图拥有一个可以代表几个不同项目的主键。就像一个代表肉类爱好者,素食爱好者和奶酪比萨饼的单个PizzaOrderID。都有不同数量的比萨饼。有人可以帮我解决一下我可以设置这个设计的方法吗?
编辑:
第三范式
客户ID→主键
名字姓氏街道地址公寓城市州邮政编码家庭电话手机其他电话
甜甜圈ID→主键
名称说明
甜甜圈订单ID→主键
甜甜圈ID→外键
数量单价
订单→主键
甜甜圈订单ID→外键
好吧,这就是我的第三张普通表格,因为你可以看到我正在处理的确切项目是甜甜圈,我猜我需要调整此表格
答案 0 :(得分:1)
让我们从头开始。您有一张代表膳食的表格,您显然称之为披萨,此表格中有一个主键 pizza_id 。 (我使用_表示可读性)。这种餐可以在餐厅餐桌上订购,方法是将订单存储在主键 order_id 的另一个表中。
到目前为止一切顺利。现在订单可以是一个披萨,两个或更多。此外,订单可以包含更多相同的比萨饼!显然你的设计需要覆盖这个,解决方案是N:M(多对多)关系。
这是在名为 orderitem 的第三个表格中完成的,其中包含复合主键(由两列组成) pizza_id 和 order_id 即可。这两个同时是指向各自表的外键。由于额外的栏目可以放入相同数量的膳食。