我正在设计一个在线语言词典数据库,我使用了一个关系模型。目前,我正处于计划阶段。我创建了它的大部分,但是我一直在创建数据库中存储单词类型名称(名词、动词等)的部分。以下是数据库示例:
language1_words
------------------------
word1_id int(11) AI PK
word1 varchar(128)
junc_lang1_lang2
------------------------
word1_id int(11) FK(language1_words)
word2_id int(11) FK(language2_words)
language2_words
------------------------
word2_id int(11) AI PK
word2 varchar(128)
这就是我现在创造的。现在,我想添加word type表并将其连接到前面提到的数据库部分。对于每一个单词都应该有相应的词类。举个例子:
word 1 ---> noun, masculine, singular
word 2 ---> verb, transitive
word 3 ---> adjective, derived, masculine, singular
etc.
我的问题是什么是最好的方法来做这件事?我想遵循规范化规则,所以我不想在数据库中重复条目,我想创建一些“引用”表并从中获取单词类型。最重要的部分是我的在线词典能够让注册用户通过表单插入新词,这将填充这个rd模型中所有必需的单元格,所以我在创建数据库时也必须考虑这个属性。
1条答案
按热度按时间fdbelqdn1#
对于您提到的特定情况,要用一种类型的单词对单词进行分类,您需要:
一张table
WordTypes
与id
以及description
.从
language1_words
以及language2_words
有一个word_type
指向(外键)的字段WordTypes
table。如果每个单词都有不止一种类型,那么你就需要打破多对多的关系。
在这种情况下,除了
WordType
您需要一张额外的tableWordByType
与word_id
以及type_id
,第一个是language*_words
第二把钥匙是打开门的钥匙WordType
table(在这种情况下,您不需要添加word_type
字段到language*_words
表格)。