同一个表中属性之间的关系

时间:2016-12-30 07:18:00

标签: mysql database database-design

我正在制作一个单词列表。这就是这样的。

| id | words    | 
.................
|1   | good     |
|2   | bad      |
|3   |benificial|
|4   | big      |
|5   | adept    |

我需要从表中找到类似的单词。例如,良好有益熟练是相似的字词。在从MySQL查询中搜索单词 good 时,我需要找到类似的单词。一个单词可以在表格中包含多个相似的单词。我该如何实现呢?请帮忙。

更新:如果我搜索 adept 这个词,我应该得到有益作为结果。例如,当我通过搜索表单搜索一个单词时,我希望在我的网页上显示类似的单词,如下所示。

如果通过表格搜索好,那么

好:有益,善于

如果搜索到有益的话,

有益:善良,善良。

如果搜索不良,则会显示相关的相似单词。相似单词的数量不受限制(即应显示数据库中的所有相似单词。)

2 个答案:

答案 0 :(得分:0)

像这样创建一个RelatedWords表

| WordId | RelatedWordId    |
.............................
|1       | 3                |
|1       | 5                |

然后在WordId的哪个地方。您可以将相关单词的ID作为结果。

答案 1 :(得分:0)

你需要一个用于单词组的表,换句话说:一个同义词表。

单词表

id | word
---+-----
1  | good
2  | fair
3  | just
4  | pretty

同义词表

groupkey | id_word
---------+--------
GOOD     | 1
GOOD     | 2
GOOD     | 3
PRETTY   | 2
PRETTY   | 4

我在这里使用了groupkey作为groupkey,以便更清楚地理解这个想法,但你当然可以使用一些没有固有含义的数字。