【发布时间】:2011-02-24 11:22:35
【问题描述】:
我正在开发一个应用程序,该应用程序会为输入文本建议替代词/短语。我怀疑什么是同义词表的好设计。
设计注意事项:
- 同义词的数量是可变的,即
football有一个同义词(soccer),但in particular有两个(particularly,specifically) - 如果
football是soccer的同义词,则关系也存在相反的方向。 - 我们的目标是查询一个词并找到它的同义词
- 我们希望保持表格小,让添加新词更容易
我想到的是一个两栏设计
-
col a = word和 col b = delimited list of synonyms
还有更好的选择吗?使用两张表怎么样,一张用于单词,另一张用于关系?
编辑:
看完答案后,我想到了另一种方法。它使用包含所有同义词的单列表,每个同义词都包含在单词边界标记中。我的意思是|in particular|particularly|specifically|
然后我会用SELECT * FROM synonyms WHERE word LIKE '%|specifically|%'
查询表
在代码中,我丢弃了前面和后面的 |s 并进行拆分并拥有同义词。
有什么不好的,我没看到吗?
【问题讨论】:
-
我也想知道这种方法(最后一种)是否好。
标签: database-design