помогите с проеткирование бд

dimitrius

Новичок
Нужна помощь в проектировании БД для хранения синонимов.
К примеру есть текстовый файл слов синонимов
Слово: синоним 1, синоним 2, синоним 3.
Необходимо эту структуру экспортировать в БД для последующей выборки синонимов в любом направлении.
Что мне при шло в голову
Index: Слово -> синоним 1;
Index: Слово -> синоним 2;
Index: Слово -> синоним 3;
Index: синоним 1 -> Слово
Index: синоним 1 -> синоним 2
Index: синоним 1 -> синоним 3
и т.д.

Вроде как индексы должны ускорить выборку по слову, но тогда размер базы растет очень сильно.

Потом я решил сделать сделать по другому:
Index: Слово -> синоним 1;
Index: синоним 1 -> синоним 2
Index: синоним 2 -> синоним 3
Но тогда становится проблема составления запроса при неизвестной глубине ветки, а рекурсивно проходить это много обращений к БД, что посоветуете? как это оптимизировать?
 

dimitrius

Новичок
Вычитал еще одну идею, и мне кажется она будет оптимальной:
таблица 1: id_группа_синонимов -> id_слова
таблица 2: id_слова->Index: Слово->id_группа_синонимов
 
Сверху