Другой подход заключается в сохранении значения (при этом не используются главные слова, а вместо этого используется таблица значений, которая группируется)
будет хранить слова в таблице слов без синонимов и только с текстом, как это:
Много слов, одно значение
meaning_table
meaning_id
---
1
2
3
И сохраните слова в другой таблице, например, если A, B и C были синонимами 1, означающими
word_table
word_id | meaning_id | word
--------+------------+------
1 | 1 | A
2 | 1 | B
3 | 1 | C
Хотя это очень похоже на то, что предлагает Хасан Амин Саранд , в нем есть ключевое отличие, которое вы не выбираете из WORD_TABLE, а вместо этого выбираете из MEANING_TABLE, это намного лучше, и я узнал, чтотрудный путь.
Таким образом, вы сохраняете значение в одной таблице и столько слов для этого значения, сколько хотите в другой.
Хотя предполагается, что у вас есть 1 значение на слово.
Много слов, много значений
Если вы хотите хранить слова с несколькими значениями, тогда вам нужна другая таблица для отношений «многие ко многим», и все это станет реальностью.es:
meaning_table
-------------
meaning_id
-------------
1
2
3
word_meaning_table
--------------------
word_id | meaning_id
--------+-----------
1 | 1
2 | 1
3 | 1
word_table
--------------
word_id | word
--------+-----
1 | A
2 | B
3 | C
Теперь вы можете иметь столько слов с любым количеством значений, сколько вы хотите, где любое слово может означать все, что вы хотите, и любое значение может иметь много слов.
Если выВы хотите выбрать слово и его синонимы, тогда вы делаете
SELECT
meaning_id,word_id,word
FROM meaning_table
INNER JOIN word_meaning_table USING (meaning_id)
INNER JOIN word_table USING (meaning_id)
WHERE meaning_id=1
Вы также можете сохранить значение, у которого еще нет слова или о котором вы не знаете слово.
Если вы не знаете, к какому значению это относится, вы можете просто вставить новое значение для каждого нового слова и исправить значение value_id в word_table позже.
Затем вы даже можете сохранить и выбрать слова, которые являютсяодно и то же, но означают разные вещи
SELECT
meaning_id,word_id,word
FROM meaning_table
INNER JOIN word_meaning_table USING (meaning_id)
INNER JOIN word_table USING (meaning_id)
WHERE word_id=1