SQL:ER模型,外键

时间:2013-03-23 16:04:08

标签: sql foreign-keys entity-relationship

我有一个简单的问题,但我仍然对此感到困惑。

每当你设计一个ER模型时,你应该如何绘制PK和FK?

假设我有两个表,User和Country

User
ID | firstName | lastName | FKCountry
1  | John      | Stewart  | 1
2  | Paul      | Duschmol | 2
etc.

Country
ID | country     | code
1  | Germany     | GER
2  | Switzerland | CH
etc...

那么,我应该在ER模型中添加“FKCountry”列吗?我的意思是,两个实体之间会有关系(Rhombus),但是我应该用User实体明确添加“FKCountry”吗?

希望我的问题很明确,提前谢谢你:)

2 个答案:

答案 0 :(得分:2)

Foreign Key的主要目的是在两个表之间强制引用完整性。

如果CountryUser的关系为One-to-Many,那么在表FKCountry上添加列User应该没问题。

但是,如果关系为Many-to-Many,其中Country可以包含多个User以及User属于多个Country,则为3-桌面设计是首选。其中第3个表是其他两个表之间的关联表。

答案 1 :(得分:1)

是的,您应该将FKCountry添加到ER图表中的User表格中。如果列存在于表中,则应在实体中表示。毫无疑问,关系标记会将Country.ID连接到User.FKCountry。仅仅因为在这个例子中很明显并不意味着在其他关系中,链接的列可能没有完全不同的命名而且不明显。