首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计。是否应该将每个表链接到一个关系

数据库设计。是否应该将每个表链接到一个关系
EN

Stack Overflow用户
提问于 2012-02-07 17:07:58
回答 2查看 279关注 0票数 1

我只是想为餐厅创建一个简单的预订系统。我现在有5张桌子。

会员->预订<-独享之夜

菜单->菜单

上面显示了它们之间的关系。因此,一位顾客可以预订很多房间,而且很多预订都是一个晚上的专属房间。

然而,我有另外两张桌子和底部的菜单和菜肴,一个菜单有许多菜肴。

虽然成员和非成员可以查看菜单,但我不确定如何通过外键连接它们,或者根本不能连接它们。

所以我的问题是,像这样的两个表没有链接到数据库的其余部分,这是错误的/不鼓励的吗?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-02-07 17:23:43

将数据与关联相关联意味着约束数据具有与关联一致的值。

如果您必须表示成员和菜单之间的关联(如果您可以使用应用程序上下文特定的单词来表示它,并且需要表示它以满足您的应用程序逻辑的目的),那么您将设计这种关联,然后通过向表中添加一列(例如,菜单表中成员的外键)来减少这种关联,并添加一个解释以确保FK中的数据与PK中的数据一致,如果需要,您将添加引用完整性。

这是你的选择,你不必非得去。

在数据库设计中,你应该首先问问自己,你是否需要使用。

票数 1
EN

Stack Overflow用户

发布于 2012-02-07 17:41:20

你说了算。它们之所以被称为约束,是因为您限制了可能的输入。

举个例子,如果

menus是MenuId,MenuName,DishId,而菜肴是DishId,DishName,这是非常合理的说法,菜单上的所有菜肴都必须存在于菜单表中,所以您应该在菜单上放置一个Foreignkey约束。

在那之后,比如把菜单加到菜肴上

打印一份鸡蛋炒饭,而不是42份

找到所有的菜单,上面都有厨师特制的放在菠菜床上的屋顶菜肴。

所有从未出现在菜单上的菜肴。

都是你可能想要的东西,但你不满足的是菜单上的一道菜“你”对此一无所知。

关系是机制,约束是原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9173541

复制
相关文章

相似问题

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