我正在浏览此网站以了解ER到关系模型映射。 以下是链接:
考虑案例1:它说由于护照实体类型完全参与,我们可以将人员和护照表以及has关系合并到一个表中,其中上述三个和主键的所有属性都为Person_id。 / p>
我怀疑的是,对于那些没有护照的人来说,不会导致很多NULL值。我认为更好的解决方案是将Person_id作为Passport关系中的外键和Person实体类型本身的单独关系。
两种解决方案似乎都有其优点和缺点:
1)一个大表意味着可能有很多NULL值,但很容易获得一个人的护照详情。
2)两个单独的表意味着没有NULL值,但要查找人员的护照详细信息,我们必须执行连接操作或搜索两个单独的表。
这两种解决方案中哪一项是正确的?如果正确的话,我的意思是在这种情况下通常会使用哪种解决方案?
答案 0 :(得分:0)
两种解决方案都是常用的。如果没有其他信息取决于护照号码,我只考虑选项1,但在这种情况下,我将其建模为ER中的(可选)属性,而不是单独的实体。如果护照具有任何依赖属性,例如原产国或有效期,我会将其建模为单独的实体,并使用选项2实施。