0

我正在浏览这个站点以了解 ER 到关系模型的映射。以下是链接:

ER 模型到关系模型

考虑案例1:它说由于护照实体类型是完全参与的,我们可以将person和passport表以及has关系合并到一个表中,其中上述三个的所有属性和主键为Person_id。

我的疑问是,对于那些没有护照的人来说,这不会导致很多 NULL 值。我在想一个更好的解决方案是将 Person_id 作为外键包含在 Passport 关系中,并为 Person 实体类型本身包含一个单独的关系。

这两种解决方案似乎都有其优点和缺点:

1) 一张大表意味着可能有很多 NULL 值,但可以轻松访问一个人的护照详细信息。

2)两个单独的表意味着没有NULL值但是要找到人的护照详细信息,我们必须执行连接操作或通过两个单独的表进行搜索。

这两种解决方案哪个是正确的?正确地说,我的意思是在这种情况下,在通常的实践中,使用哪种解决方案?

4

1 回答 1

0

这两种解决方案都是常用的。如果没有其他信息取决于护照号码,我只会考虑选项 1,但在这种情况下,我会将其建模为 ER 中的(可选)属性,而不是单独的实体。如果护照具有任何相关属性,例如原籍国或到期日,我会将其建模为一个单独的实体并使用选项 2 实现它。

于 2016-09-12T07:06:05.923 回答