首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Postgresql中定义条件多到多

在Postgresql中定义条件多到多
EN

Stack Overflow用户
提问于 2021-07-25 07:51:54
回答 1查看 108关注 0票数 2

我有三张桌子,

  • menu
  • item
  • category

所有这些表之间的关系是,

  1. A菜单可以有多个项目和类别。因此,菜单与项目有一对多的关系,category.
  2. Item和类别有多到多的relationship

  1. Furthermore,我认为限制是只有在相同的菜单下才能连接项目和类别。

目前,我正在考虑在数据库中强制执行前两个禁忌(一对多和多对多),并在应用程序端处理第三个约束。

在postgres或任何其他db中是否有更好的方法来定义这种类型的条件约束?如果是,是否有行业术语?

EN

回答 1

Stack Overflow用户

发布于 2021-07-25 15:57:03

不确定从经营餐厅的角度来看这是否有意义,但与问题中描述的约束相匹配。

代码语言:javascript
复制
-- Menu MEN exists.
--
menu {MEN}
  PK {MEN}
代码语言:javascript
复制
-- Item ITM is on menu MEN.
--
item {ITM, MEN}
  PK {ITM}
  SK {ITM, MEN}
代码语言:javascript
复制
-- Category CAT is listed on menu MEN.
--
category {CAT, MEN}
      PK {CAT}
      SK {CAT, MEN}
代码语言:javascript
复制
-- 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} 

注意:

代码语言:javascript
复制
All attributes (columns) NOT NULL

PK = Primary Key
AK = Alternate Key   (Unique)
SK = Proper Superkey (Unique)
FK = Foreign Key
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68516609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档