【发布时间】:2012-10-20 19:38:35
【问题描述】:
我有两个表:“Person”和“Details”。 Person 应该与 Details 具有一对一的关系。我有两个选择:
- 在Details表中写入DetailsId,使其FK到Details.Id(PK);
- 将Details.PersonId同时作为PK和FK为Person.Id;
在这两种情况下,关系都是一对一的。你能解释一下哪个更好,在什么情况下?
编辑:
我正在使用实体框架并希望获得这样的详细信息:Person.Detail,而不是 Person.Details.First()
【问题讨论】:
-
您忘记了第三种情况:在 Details 表中写入 PersonId 并将其设为 Person.Id(PK) ;)
-
@danihp 这将是一对多的关系。一个人可能在您的案例中有很多详细信息
-
... 并将 UNIQUE 约束设置为 PersonId 字段。
-
@danihp EF 认为它是一对多的关系,抱歉我之前不得不提到 EF
-
为什么不把它都放在人的桌子上呢?
标签: entity-framework database-design relational-database