mysql - 何时/应该在 1 中存在两个实体 :1 Relationship become a Single Entity?

标签 mysql sql entity-framework

我对(关系)数据库设计相对较新。我对以下建议感到困惑

许多(如果不是大多数)1:1 关系都是 ERM 设计不当的迹象,而且

除非存在 1:1 关系的两个实体应合并为一个实体

是不这样做的充分理由。但我还没有找到关于何时的明确建议

这样做。任何解释、引用资料表示赞赏。

编辑:我认为我的情况有所不同,因为我有不同的起点:我面临着一种业务情况,在这种情况下我必须识别实体, 他们的关系等。我得到了两个处于 1:1 关系的实体,我想知道何时/是否应该将它们合并为一个实体。我没有在任何其他问题中看到这一点。如果有人确实将我链接到确实解决此问题的问题,我可能会删除我的帖子,但我想让它保持不变。

编辑2:更具体地说,我有一种情况,每个员工都管理 一个部门和每个部门都由一名员工管理。

编辑3:我想这可以归结为区分属性和实体。我的想法是,根据经验,给出一个描述 情况,动词表示关系。我能想到的另一个限制 of 违反了“原子性”或 1NF,其中属性是多值的, 例如,如果我们有“包裹”并且提到了包裹内容,如果有 描述的内容较多,则将“内容”做成一个实体,避免出现多个条目。也许这比我最初想象的要简单。

谢谢。;

最佳答案

“1:1 关系中的两个实体何时/应该成为单一实体?”

几乎总是

事实上,问题应该是“一个实体什么时候应该分成两个具有 1:1 关系的表?”我能想到一个可能的原因。

The no of columns or the space needed for one row of the entity exceeds what is permitted.

肯定还有更多的原因,但我马上想到的就是这个。

编辑

从此处添加更多原因:http://solutioncenter.apexsql.com/how-to-split-a-table-in-sql/#sthash.VbXZVkxv.dpuf

By splitting a table and moving columns you want to protect you can assign different access rights to a table that contains sensitive data:

Having a table where most of the external applications access one set of data more often (e.g. persons name, SSN etc.) while other data (e.g. person’s picture) is required less often you can improve performance by splitting the table and move the less accessed columns into another table.

关于mysql - 何时/应该在 1 中存在两个实体 :1 Relationship become a Single Entity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33589755/

相关文章:

c# - C# 中的 ExecuteNonQuery 结果

给定时间戳的列中的 MYSQL 求和字段

java - 无法将减号插入具有检查约束的 varchar 列(列 <> '' )

mysql - MySQL 中何时使用单引号、双引号和反引号

java - 如何使用 ODBC 获取 View 的 Lotus 数据库列名称

mysql - 使用 WKT 绘制多边形 - 使用 OpenLayers 的 XML 文件

mysql - 如何在 MySQL View 中设置默认值?

来自 Entity Framework 的WCF契约(Contract)?

entity-framework - 自动属性 ​​: DBSet vs ObjectSet

c# - Entity Framework 代码优先迁移后的外来列