数据库规范化1nf-3nf(这是否合规?)

时间:2013-12-30 10:30:15

标签: mysql database normalization

在谈到(或至少设计)数据库时,我是一个新手,所以在潜入之前,我想我会问你们大家是否在正确的轨道上!我想设计一个数据库来保存一些单词以及一些外围信息。以下是我想要存储的信息:

单词,定义,定义重要性,词性,同义词,反义词

以下设置是否遵循3nf标准?

表一: 主键 - Word

表二: 主键 - 词性 - 定义重要性 - 定义

表三: 主键 - 同义词

表四: 主键 - 反义词

如果它符合要求那么棒!如果没有,那么获得一些建议会有所帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

不,它没有正常化。虽然你应该警惕尝试遵守一个有效的抽象定义(1),但这里有很多缺失。

同义词和antinym表都应该有一个复合主键,用于分解单词表中条目与相应的反/ syno-nym(也在单词表中)之间的多对多关系。

我不知道“定义重要性”是什么意思。如果这是'wor'd实体的多个定义,而不是'词性'实体,那么它应该在单词表中 - 类似于您在表2中列出的其他属性。

顺便说一句,如果你看一个专门建立的字典系统(如aspell),通常使用一个完全不同的非关系结构。

1)正常形式远非抽象 - 但如果你不完全理解它,那么它就是有效的抽象。只要您对数据结构及其操作方式有了深刻的理解,那么这应该是您的起点。但这似乎不是这种情况。