与同一实体的记录的数据库关联关系

时间:2013-03-11 16:37:16

标签: mysql database database-design relational-database

我可能没有想清楚,但我被要求在工作中直观地表示现有数据库的关系。我习惯于将多对多关系联系起来,例如“ Person - PersonProfession - Profession ”(PersonProfession是关联的)。

现在我遇到了一个“ Person - PersonAssociation - Person ”之类的关系。仍然是多对多,但每个人都与一个或多个...... (同一实体)相关联。

恢复,我只有2个表( PersonAssociation )。 PersonAssociation仅包含字段[personA]和[personB]

如果我在它们之间绘制一对多的界限,我只会说每个人都有多个关联,而不会说“它们与之相关”。

这种方法对我来说看起来不错,到目前为止它运作良好,但我不知道如何表示它。任何有类似经历的人都有关于如何表现这种情况的想法吗?

先谢谢, 劳尔卡多佐

2 个答案:

答案 0 :(得分:1)

这是ERD的样子。对于多对多,有一个替代方案 - 取决于您是否要明确显示关系实体。我会在下列任何一种情况下展示这样一个实体:我的目的是更基于实现,我会展示它(但如果我的意图更“逻辑”/概念,那就不行了。另外,如果关系本身有一些属性,我会展示它(例如“友谊实体可能展示友谊开始时的事情等等)

。”

Sample ERD

谷歌搜索,我发现this PDF from a course on ERDs。您可能会觉得有用

答案 1 :(得分:0)

代表它......怎么样?你的意思是某种图表?就像实体关系图一样?

如果这就是你的意思,代表这一点的传统方式是:

(a)从实体中抽出一条线回到自身;

(b)从实体中抽出一条线回到自身,并在线上加上一个标签,表明关系的性质,如“报告到”或“是表兄”或其他什么。

(c)画一颗钻石来代表这种关系,然后从实体到关系钻石画一条线,然后从关系菱形中再画一条线回到实体。在钻石内放一个合适的标签。

BTW:这被称为“递归关系”,并不常见。