我有一个同义词列表,需要为此在SQL中创建一个数据库。
我当时正在考虑使用关系数据库设计,但不知道这是否是最好的。使用该数据库的流量将会很大。
我在想Table1会像
Id
Table2
Id
InterlinkID (Table1 Id)
Word
这是最好的方法吗?可能有1-20个以上的链接词。从该设置中我看到的另一个问题是,如果我有一个单词可以用作多个单词的同义词。
不太好使用它的示例,但是您可以理解:
表格1
ID 1
ID 2
表2
ID 1
InterlinkID 1
一字
ID 2
InterlinkID 1
字1
ID 3
InterlinkID 1
单词优先
4号
InterlinkID 2
第二个字
5号
InterlinkID 2
字2
6号
InterlinkID 2
词第二
最佳答案
对关系进行建模的最简单方法是将其作为具有三列的单个表:
id
-主键,整数word
-唯一单词,应具有唯一约束以阻止重复parent_id
-可为空的使用
parent_id
存储要与当前单词相关联的单词的ID号。 IE:id | word | parent_id
---------------------------
1 | abc | NULL
2 | def | 1
...表明
abc
是首先添加的,而def
是它的同义词。建立关系的一种更明显,更灵活的方法是使用两个表:
WORDS
id
,主键wordvalue
SYNONYMS
word_id
synonym_id
SYNONYMS
表中的两列都是主键,以确保不会重复。但是,它不会以相反的顺序停止重复项。但是,它允许您映射许多组合以使单词之间具有“蜘蛛网”关系,而单个表格格式仅支持层次关系。