实施或在ER图中

时间:2012-09-02 15:38:38

标签: symfony doctrine entity-relationship

我有这些信息来绘制ER图。

企业生成文档,这些文档与员工关联,但有很多类型的文档。我只是无法对这个图表做出正确答案。

我的解决方案是:

企业1-M文件 文件M-1文件类型

如何根据文档类型更改Document表的属性? 您认为解决这个问题的最佳方法是什么?

我是否必须将所有文档属性放在Type of Document表中?如果我们谈论document1,那么文档2的属性将为null?

我认为另一种解决方案是:文档可以是具有不同属性的表文档1,也可以是具有其他属性的表文档2或具有其他属性的表文档3,等等,但我只是不知道如何在ER - Diagram上显示这个。

我想以最好的方式解决它。

顺便说一下,我正在使用Doctrine和Symfony2。

2 个答案:

答案 0 :(得分:0)

我看待(并了解)你的案子的方式:

“企业生成文档,这些文档与员工相关联,但有很多类型的文档。”

企业 ID,名称

员工 ID,名字,姓氏,enterprise_id(FK到Enterprise.id)

DocumentType id,name

文档 id,content,document_type_id(FK到DocumentType.id)

SpecificDocument id(FK到document.id),specificfield1,specificfield2

SpecificDocument2 id(FK到document.id),specificfield3,specificfield4

EmployeeDocument employee_id(FK到Employee.id),document_id(FK到Document.id)

您应该能够使用此信息生成您的ER图表。

编辑:

但最好的方法是不使用ER DB而是使用Document DB(例如:MongoDB)。

答案 1 :(得分:0)

听起来像文档的类型是专业化的情况。如果您正在进行ER建模,则可以使用扩展ER的功能直接表达专业化。加载以下PDF并向下导航到“专业化”以获得图表专业化的方法。

http://www.sis.pitt.edu/~valeriab/1022-spring08/Chapter6.pdf

如果您正在设计关系数据库来实现ER模型,则需要学习几种技术,即类表继承和共享主键。这些技术中的每一种都在SO中有一个标记,以及许多有用的答案。