0

我想为同义词和反义词创建一个数据库,但我不确定如何建立表之间的关系以获得更好的性能以及我应该创建哪个索引。

首先我想:

table name: synonymous
id (int) primary key
name (varchar) text index
syn_group_id (int)
ant_group_id (int)  

因此,所有同义词都将具有相同的 syn_group_id,但这是不可能的,因为所有单词都不共享相同的同义词,反义词也是如此。所以我完全不知道如何做到这一点。

4

1 回答 1

1

我想你可以简单地拥有这样的结构:

table: Words
id(int, autoindex,primary,key)
word(varchar, unique index)

table: Synonyms
lookup_id, related_id (both int related to words table id field with compound primary key indexing)

table: Antonyms (same structure as synonyms)

同义词和反义词表只是与单词表相关的多对多连接表。

因此,示例查找查询可能是:

SELECT w.word FROM words as w INNER JOIN synonyms as s on w.id = s.related_id WHERE s.lookup_id = [LOOKUP_ID];
于 2012-08-01T17:05:26.000 回答