我对(Relational)数据库设计比较陌生。
的建议让我很困惑 很多,即使不是大多数1:1关系都是设计不良的ERM的迹象,而且除非
,否则应将1:1关系中的两个实体合并为一个实体是做其他事情的强有力的理由。但我还没有找到关于何时的明确建议
这样做。任何解释,参考文献赞赏。
编辑:我认为我的情况有所不同,因为我有一个不同的起点:我有一个业务情况,我必须识别实体, 他们的关系等等。我给了两个1:1关系的实体,我想知道何时/是否应该将它们合并为一个实体。我没有在任何其他问题中看到这一点。如果有人确实将我链接到一个解决此问题的问题,我可能会删除我的帖子,但我想让它站起来。
编辑2:更具体地说,我有一个每个员工都管理的情况 一个部门和每个部门由一名员工管理。
编辑3:我想它归结为区分属性和实体。我的想法是,根据经验,给出一个描述 情况,动词表示关系。我能想到的另一个限制 违反了"原子性"或1NF,其中属性是多值的, 例如,如果我们有"包"并且有提及包装内容,如果有的话 是描述了很多内容,然后"内容"被制成一个实体,以避免多个条目。也许这比我原先想象的要简单。
感谢.;
答案 0 :(得分:1)
“1:1关系中的两个实体何时/应该成为单一实体?”
几乎总是。
实际上问题应该是“何时应该将一个实体分成两个具有1:1关系的表?”我可以想到一个可能的原因。
实体的一行所需的列数或空间超出了允许范围。
必须有更多理由,但这就是我们立刻想到的。
修改
从此处添加更多理由:http://solutioncenter.apexsql.com/how-to-split-a-table-in-sql/#sthash.VbXZVkxv.dpuf
通过拆分表并移动要保护的列,您可以 为包含敏感的表分配不同的访问权限 数据:
有一个表,其中大多数外部应用程序访问一组 数据更频繁(例如人名,SSN等),而其他数据 (例如,人的照片)需要更少的时间来改善 通过拆分表并移动较少访问的列来实现性能 进入另一张桌子。