我有三张桌子,
所有这些表之间的关系是,
。

目前,我正在考虑在数据库中强制执行前两个禁忌(一对多和多对多),并在应用程序端处理第三个约束。
在postgres或任何其他db中是否有更好的方法来定义这种类型的条件约束?如果是,是否有行业术语?
发布于 2021-07-25 15:57:03
不确定从经营餐厅的角度来看这是否有意义,但与问题中描述的约束相匹配。
-- Menu MEN exists.
--
menu {MEN}
PK {MEN}-- Item ITM is on menu MEN.
--
item {ITM, MEN}
PK {ITM}
SK {ITM, MEN}-- Category CAT is listed on menu MEN.
--
category {CAT, MEN}
PK {CAT}
SK {CAT, MEN}-- Item ITM, from menu MEN, is in category CAT
-- from the same menu.
--
item_category {ITM, CAT, MEN}
PK {ITM, CAT}
FK1 {ITM, MEN} REFERENCES item {ITM, MEN}
FK2 {CAT, MEN} REFERENCES category {CAT, MEN} 注意:
All attributes (columns) NOT NULL
PK = Primary Key
AK = Alternate Key (Unique)
SK = Proper Superkey (Unique)
FK = Foreign Keyhttps://stackoverflow.com/questions/68516609
复制相似问题