我有一个同义词列表,需要用 SQL 为它创建一个数据库。
我正在考虑使用关系数据库设计,但不知道它是否是最好的。使用此数据库会有相当数量的流量。
我在想 Table1 会是这样
Id
Table2
Id
InterlinkID (Table1 Id)
Word
这是最好的方法吗?可能有 1 - 20 多个链接词。我从这个设置中看到的另一个问题是如果我有 1 个词作为多个词的同义词。
关于如何使用它的例子不是很好,但你明白了:
Table 1 Id 1 Id 2 Table 2 Id 1 InterlinkID 1 Word One Id 2 InterlinkID 1 Word 1 Id 3 InterlinkID 1 Word First Id 4 InterlinkID 2 Word Two Id 5 InterlinkID 2 Word 2 Id 6 InterlinkID 2 Word Second
最佳答案
对关系建模的最简单方法是将其作为具有三列的单个表:
id
- 主键,整数word
- 独特的词,应该有一个独特的约束来阻止重复parent_id
- 可为空
使用parent_id
来存储您想要关联当前单词的单词的id 号。即:
id | word | parent_id
---------------------------
1 | abc | NULL
2 | def | 1
...显示abc
先被添加,def
是它的同义词。
对关系建模的更明显和灵活的方法是使用两个表:
单词
id
, 主键字值
同义词
word_id
synonym_id
SYNONYMS
表中的两列都是主键,以确保不会有重复项。但是它不会以相反的顺序停止重复。但它允许您映射无数组合,在单词之间形成“蜘蛛网”关系,而单一表格格式仅支持层次关系。
关于SQL数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339414/