Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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 数据库规范化_Database_Relational Database_Normalization_Database Schema_Database Normalization - Fatal编程技术网

Database 数据库规范化

Database 数据库规范化,database,relational-database,normalization,database-schema,database-normalization,Database,Relational Database,Normalization,Database Schema,Database Normalization,我曾经尝试过规范化数据库中的一些数据,如果有人能告诉我这些数据是否正确规范化,我将不胜感激。 结构如下: 我使用了复合键(事件ID和操作代码),因为某个事件不需要两个相同类型的操作。有更好的方法吗?我想只添加一个动作ID自动编号,但这样可以吗 如果有人能提供帮助,谢谢。就我个人而言,我会使用ActionID作为我的密钥-这实际上取决于您将如何处理数据和卷 我可以看到,获取您执行特定操作的事件列表是很有用的,使用操作代码上的索引更容易获取,而且使用复合键很可能会导致聚集索引上的页面拆分,这显然会

我曾经尝试过规范化数据库中的一些数据,如果有人能告诉我这些数据是否正确规范化,我将不胜感激。 结构如下:

我使用了复合键(事件ID和操作代码),因为某个事件不需要两个相同类型的操作。有更好的方法吗?我想只添加一个动作ID自动编号,但这样可以吗


如果有人能提供帮助,谢谢。

就我个人而言,我会使用ActionID作为我的密钥-这实际上取决于您将如何处理数据和卷


我可以看到,获取您执行特定操作的事件列表是很有用的,使用操作代码上的索引更容易获取,而且使用复合键很可能会导致聚集索引上的页面拆分,这显然会带来开销。

嗨,Andy,感谢您的反馈。我是否应该将操作ID添加到UNF并再次正常化?由于这需要记录,我不相信我可以证明在1/2NF期间生成ActionID是合理的?我真的不会在第一个、第二个和第三个NF上挂断太多电话——正如他们所说的“正常化,直到它受伤,然后再去正常化,直到它起作用”。我只是将ActionID添加到您的操作表中,显然我不知道您在文档方面的要求是什么,但是如果您必须将步骤记录到3nf,我会严肃地质疑4NF、5NF等有什么问题?再次感谢Andy。它确实需要标准化为“3NF或BCNF”。添加操作ID只会对2NF产生轻微影响。谢谢,SimonNormalization从不涉及在nihilo之前创建新列。不,但我可以将操作ID添加到UNF?