在谈到(或至少设计)数据库时,我是一个新手,所以在潜入之前,我想我会问你们大家是否在正确的轨道上!我想设计一个数据库来保存一些单词以及一些外围信息。以下是我想要存储的信息:
单词,定义,定义重要性,词性,同义词,反义词
以下设置是否遵循3nf标准?
表一: 主键 - Word
表二: 主键 - 词性 - 定义重要性 - 定义
表三: 主键 - 同义词
表四: 主键 - 反义词
如果它符合要求那么棒!如果没有,那么获得一些建议会有所帮助。
谢谢!
答案 0 :(得分:0)
不,它没有正常化。虽然你应该警惕尝试遵守一个有效的抽象定义(1),但这里有很多缺失。
同义词和antinym表都应该有一个复合主键,用于分解单词表中条目与相应的反/ syno-nym(也在单词表中)之间的多对多关系。
我不知道“定义重要性”是什么意思。如果这是'wor'd实体的多个定义,而不是'词性'实体,那么它应该在单词表中 - 类似于您在表2中列出的其他属性。
顺便说一句,如果你看一个专门建立的字典系统(如aspell),通常使用一个完全不同的非关系结构。
1)正常形式远非抽象 - 但如果你不完全理解它,那么它就是有效的抽象。只要您对数据结构及其操作方式有了深刻的理解,那么这应该是您的起点。但这似乎不是这种情况。