Я имею список синонимов и должен создать базу данных в SQL для него.
Я думал об использовании Дизайна Реляционной базы данных, но не знайте, было ли это лучшим. Будет достойный объем трафика с помощью этой базы данных.
Я думал о Table1, будет похож
Id
Table2
Id
InterlinkID (Table1 Id)
Word
Это было бы лучшим способом? Мог быть 1 - 20 + связанные слова. Еще одна проблема, которую я вижу от этой установки, состоит в том, Если у меня есть 1 слово, которое работает синонимом больше чем для одного слова.
Не так яркий пример того, как это будет использоваться, но Вы получаете идею:
Table 1 Id 1 Id 2 Table 2 Id 1 InterlinkID 1 Word One Id 2 InterlinkID 1 Word 1 Id 3 InterlinkID 1 Word First Id 4 InterlinkID 2 Word Two Id 5 InterlinkID 2 Word 2 Id 6 InterlinkID 2 Word Second
Самый простой способ моделирования взаимосвязи: быть единой таблицей с тремя столбцами:
id
- первичный ключ, целое слово
- уникальное слово, должно иметь уникальное ограничение для остановки дублирования parent_id
- допускающее значение NULL Используйте parent_id
, чтобы сохранить номер идентификатора слова, с которым вы хотите связать текущее слово. IE:
id | word | parent_id
---------------------------
1 | abc | NULL
2 | def | 1
... показывает, что abc
был добавлен первым, а def
является его синонимом.
Более очевидным и гибким средством моделирования отношений было бы использование двух таблиц:
СЛОВА
id
, первичный ключ значение слова
SYNONYMS
word_id
synonym_id
Оба столбца в таблице SYNONYMS
будут первичными ключами, чтобы гарантировать, что не может быть дубликатов. Однако это не остановит дублирование в обратном порядке. Но это позволит вам сопоставить многочисленные комбинации, чтобы иметь связь между словами «паутина», в то время как формат единой таблицы будет поддерживать только иерархические отношения.