Я работаю над приложением, которое предлагает альтернативные слова/фразы для ввода текста. У меня есть сомнения в том, что может быть хорошим дизайном для таблицы синонимов.Альтернативный дизайн для таблицы синонимов?
Конструктивные соображения:
- количество синонимов является переменной, т.е.
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|%'
И в коде я мусор предшествуют и завершающие |
с и сделать раскол и есть синонимы.
Что-то плохое в этом, что я не вижу?
Мне также интересно, хороший ли этот подход (последний). – Jerry2