多对多关系ERD

时间:2014-06-09 17:53:07

标签: database many-to-many entity-relationship diagram erd

美好的一天,

房地产公司有几个建筑物,每个建筑由一个或多个经理管理,经理可以访问一个或多个建筑物。因此,经理和建筑物之间存在多对多的关系。它必须是一个表格,如权限,以摆脱多对多的关系。

请帮我弄清楚,数据库的最佳设计是什么?

我提出了两个候选图表,哪一个更好?如果它们都不好,我应该改变什么呢?

http://i.stack.imgur.com/Z0l6h.png
http://i.stack.imgur.com/Dg5Sv.png

此致

2 个答案:

答案 0 :(得分:0)

second picture似乎最接近

我建议稍微移动一下框以显示层次结构。将公司置于顶部和中心,然后是下一行,左侧是经理,右侧是建筑物,两者之间的权限。

答案 1 :(得分:0)

ER图用于两个不同的目的。一个目的是说明主题实体以及它们之间的关系,如主题专家所理解的。这被称为数据的概念模型。

另一个目的是说明建议的数据库设计,其中不仅表达关系,而且还以某种方式实现。如果设计是关系的(通常是这样),则通过创建中间表来表达多对多关系。这被称为数据的物理模型(在一些文献中,它被称为逻辑模型)。这就是你在第二张图中所做的。

通过取消名为"权限"的框,并在连接经理和建筑物的线的两端放置一个乌鸦脚,可以稍微清理您的第一个图表。

现在回到你的问题:哪一个更好"?这取决于。有时,概念图更适合与最终利益相关者讨论主题:非技术经理一直在处理数据,可能被称为主题专家"。

在讨论数据架构师和程序员之间的建议设计时,物理图通常更好。它不仅解释了数据在概念上的工作方式,还解释了数据库的构建方式。这种细节被概念模型掩盖了。

因此,您最终可能会得到两个图表,并根据您的受众使用相应的图表。