@MIsternik

Как правильно спроектировать отношение между таблицами БД (см.описание)?

Есть таблица я языками, между которыми может быть перевод.
Примерно с такой структурой:
id name

Нужно создать таблицу слов с переводами. Одно и то же слово может быть по разному переведено на разные языки.

Поэтому нужно связать само слово, язык "с какого" и язык "на какой" переводим.

Для меня очевидное решение, это составной ключ из трех полей. Но нормально ли, что 2 из этих поля являются вторичными ключами одной и той же таблицы.

Может есть какое-то другое решение подобных ситуаций?
  • Вопрос задан
  • 2343 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А не проще так?
CREATE TABLE `words` (
  `word_id` INT NOT NULL,
  `language_id` INT NOT NULL,
  `word` VARCHAR(45) NULL);

При этом у одного слова на разных языках должен быть один и тот же word_id. Тогда найдя word_id слова на текущем языке можно по паре (word_id, language_id) найти его варианты на другом языке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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