Bra*_*rad 6 sql database database-design data-modeling
我有一个同义词列表,需要在SQL中为它创建一个数据库.
我正在考虑使用关系数据库设计,但不知道它是否是最好的.使用此数据库将有相当数量的流量.
我在想Table1会是这样的
Id
Table2
Id
InterlinkID (Table1 Id)
Word
Run Code Online (Sandbox Code Playgroud)
这会是最好的方式吗?可能有1到20个以上的链接词.我从这个设置中看到的另一个问题是如果我有一个单词作为多个单词的同义词.
不太好用它如何使用的例子,但是你明白了:
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号.IE:
id | word | parent_id
---------------------------
1 | abc | NULL
2 | def | 1
Run Code Online (Sandbox Code Playgroud)
...显示abc首先添加,并且def是它的同义词.
建立关系的更明显和灵活的方法是使用两个表:
WORDS
id, 首要的关键wordvalueSYNONYMS
word_idsynonym_id 表中的两列SYNONYMS都是主键,以确保不会出现重复.但是,它不会以相反的顺序停止重复.但它允许您映射多个组合以在单词之间具有"蜘蛛网"关系,而单表格格式仅支持层次关系.