Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 我应该改变/规范我的ER(1:1)图吗?_Database_Database Design_Entity Relationship_Database Relations_Er Diagrams - Fatal编程技术网

Database 我应该改变/规范我的ER(1:1)图吗?

Database 我应该改变/规范我的ER(1:1)图吗?,database,database-design,entity-relationship,database-relations,er-diagrams,Database,Database Design,Entity Relationship,Database Relations,Er Diagrams,我对我的桌子做了一个记号,我不确定它是否正确。在我的表(0NF)中有5列:DocumentID、DocumentTitel、revNr、userID、modifiedDate。该表概述了哪些人更改了哪些文档 我的数据(0NF): ER图(粗体文本=主键): 我的ER(1:1)对我的数据正确吗?我可以进一步规范化吗?ER图中表示的关系似乎是一对多,而不是一对一(因为DocumentId在版本表中不是唯一的) 规范化应始终基于对适用于预期设计的业务规则的理解。仅仅根据一些样本数据得出结论是不够的

我对我的桌子做了一个记号,我不确定它是否正确。在我的表(0NF)中有5列:DocumentID、DocumentTitel、revNr、userID、modifiedDate。该表概述了哪些人更改了哪些文档

我的数据(0NF):

ER图(粗体文本=主键):


我的ER(1:1)对我的数据正确吗?我可以进一步规范化吗?

ER图中表示的关系似乎是一对多,而不是一对一(因为DocumentId在版本表中不是唯一的)

规范化应始终基于对适用于预期设计的业务规则的理解。仅仅根据一些样本数据得出结论是不够的


例如,在您的示例中,我们可以很容易地从两行示例数据推断{DocumentId}和{Title}都应该是文档表中的键,或者{DocumentId,revNr}和{DocumentId,modifiedDate}应该是版本表中的键。如果这些都是准确的假设,那么您的设计是不完整的,当然可以进一步规范化和改进。只有您知道需要强制执行哪些依赖项才能帮助您做出这些设计决策。

我可以说我的ER是1NF吗?如果是这样,这是否意味着它也是2NF,因为userID和modifiedDate依赖于这两个键(revNr和DocumentID)?要正确回答这些问题,您需要写下应该满足的依赖项。2NF并不是很重要。设计一个至少满足BCNF或5NF的设计。它看起来不错,除非是学校的设计,在这种情况下,一些理论规则可能会适用。