数据库设计。每张桌子都应该与关系联系起来

时间:2012-02-07 09:07:58

标签: database database-design relational-database

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

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

菜单--->菜

上面显示了他们彼此的关系。因此,客户可以进行多次预订,许多预订仅限一晚。

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

虽然会员和非会员可以查看菜单,但我不确定如何通过外键加入或加入。

所以我的问题是,有两个表没有链接到数据库的其他表是错误/沮丧吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

将数据与关联链接意味着约束数据具有符合关联的值。

如果必须表示成员和菜单之间的关联(如果您可以使用特定于应用程序上下文的单词来表达它,并且需要为了应用程序逻辑的目的来表示它),那么您将设计此关联然后减少这种关联为表添加一个列(例如菜单表中成员的外键)并添加一个constranint以确保FK中的数据符合PK中的数据,如果需要,您将添加REFERENTIAL INTEGRITY。

这是你的选择,你没有必须

在数据库设计中,您首先应该问自己是否需要

答案 1 :(得分:0)

这是你的意思。它们被称为约束,因为您限制了可能的输入。

例如,如果

菜单是MenuId,MenuName,DishId和Dishes是DishId,DishName,它是完美的理由说菜单上的所有菜肴必须存在于菜肴表中,所以你在菜单上放置了一个外键约束。

之后就像将Menus加入菜肴一样

用鸡蛋炒饭而不是42份打印出来

在菠菜床上找到所有带有厨师特殊屋顶rabit的菜单。

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

是你可能想要的所有东西,但是你所做的不是你菜单上的一道菜'你什么都不知道。

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