我有这些信息来绘制ER图。
企业生成文档,这些文档与员工关联,但有很多类型的文档。我只是无法对这个图表做出正确答案。
我的解决方案是:
企业1-M文件 文件M-1文件类型
如何根据文档类型更改Document表的属性? 您认为解决这个问题的最佳方法是什么?
我是否必须将所有文档属性放在Type of Document表中?如果我们谈论document1,那么文档2的属性将为null?
我认为另一种解决方案是:文档可以是具有不同属性的表文档1,也可以是具有其他属性的表文档2或具有其他属性的表文档3,等等,但我只是不知道如何在ER - Diagram上显示这个。
我想以最好的方式解决它。
顺便说一下,我正在使用Doctrine和Symfony2。
答案 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中有一个标记,以及许多有用的答案。