繁体   English   中英

在不使用主键的情况下在两个表之间创建关系

[英]Creating a relationship between two tables without using a Primary Key

我正在寻找在SSMS中的菜单表和WinePrice表之间的关系。 我试图通过链接表(MenuContents)做到这一点。 但是我无法弄清MenuContents表中的MenuContentsId(因为它不是唯一的)和Menu表中的MenuContentsId之间的关系。 为了使情况更清楚,我将其他桌子放在图片之外。

Menu:                  WinePrice:            MenuContents:

MenuId(PK)             WinePriceId(PK)       MenuContentsId
PubId                  WineId                WinePriceId
MenuContentsId         Size
MenuName               Price 

想法是,菜单可以包含同一葡萄酒的多种变体(基于其价格和大小),每种变体由WinePriceId标识,后者与另一个未显示的表格中的特定葡萄酒相关。 我不能将MenuContentsId设置为PK,因为许多MenuContentsIds将具有许多WinePriceIds。

对我来说,您似乎想要一个菜单​​上放很多葡萄酒。 许多葡萄酒可以存在于许多菜单中。

链接表是正确的,您要做的就是将MenuContents的PK设置为两个字段的组合。 这样,只要MenuContents :: WindPriceId不同,任何MenucContents :: MenuId字段都可能出现多次。

这意味着相同的WindPriceId可以针对多个MenuId出现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM