此数据库模型中的主/外键字段是什么?

时间:2012-12-31 20:12:22

标签: sql-server database-design

我正在看这个数据库模型,我对某些表中的“PF”感到困惑。我的理解是PF是“主/外键”,也可以是复合键。我理解这种情况是为了多对多的关系,但是Menu_Courses表等情况怎么样呢?主键显然是int类型的自动递增列,但是menu_id字段呢?如何在SQL Server等数据库中实现?

作者还在此页面上解释了PF字段:http://www.databaseanswers.org/tutorial4_db_schema/tutorial_slide_5.htm

http://www.databaseanswers.org/data_models/recipes/index.htm

4 个答案:

答案 0 :(得分:7)

我理解的方式是这些字段是它们定义的表上的主键,同时它们是其他表的外键。

menu_courses引用了suggested_menusmenu_id,并与course_number结合使用了主键 - 即每个菜单/课程编号组合都是唯一的,并且唯一标识了在桌子上排。

您通常会将其作为suggested_menus表上的外键字段实现。

答案 1 :(得分:2)

我想这只是意味着它是表中复合主键的一部分,但同时是外键。在 menu_courses 中,menu_id引用了 suggested_menus ,并且是表主键的一部分。

答案 2 :(得分:1)

PF表示该列既是主键又是外键。作为主键,它是包含主键的多个列之一。那是引用复合键的地方。

例如,在表Recipe_Steps中,recipe_idRecipe表的外键。并且,与Step_Number一起,它包含Recipe表中的主键。

答案 3 :(得分:0)

这里的描绘具有误导性,当显示多个PF时,它们代表一个复合键。

如果只显示了一个PF,则表的PK用于组成复合键,Menu_Courses中似乎就是这种情况。
它有自己的PKPF组合键,由自己的PK和父表的PK组成。