Структура базы данных SQL

Я имею список синонимов и должен создать базу данных в 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

6
задан OMG Ponies 26 February 2010 в 15:38
поделиться

1 ответ

Самый простой способ моделирования взаимосвязи: быть единой таблицей с тремя столбцами:

  • id - первичный ключ, целое
  • слово - уникальное слово, должно иметь уникальное ограничение для остановки дублирования
  • parent_id - допускающее значение NULL

Используйте parent_id , чтобы сохранить номер идентификатора слова, с которым вы хотите связать текущее слово. IE:

id  |  word  |  parent_id
---------------------------
1   | abc    |  NULL
2   | def    |  1

... показывает, что abc был добавлен первым, а def является его синонимом.

Более очевидным и гибким средством моделирования отношений было бы использование двух таблиц:

  1. СЛОВА

    • id , первичный ключ
    • значение слова
  2. SYNONYMS

    • word_id
    • synonym_id

Оба столбца в таблице SYNONYMS будут первичными ключами, чтобы гарантировать, что не может быть дубликатов. Однако это не остановит дублирование в обратном порядке. Но это позволит вам сопоставить многочисленные комбинации, чтобы иметь связь между словами «паутина», в то время как формат единой таблицы будет поддерживать только иерархические отношения.

6
ответ дан 17 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: