Модель базы данных Человек с несколькими языками - PullRequest
0 голосов
/ 27 июня 2018

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

Как мне разработать базу данных для этой ситуации?

(пример) У меня есть 2 таблицы: один из языков и другой из людей. Чтобы люди могли говорить на одном или нескольких языках.

Это модель, которую я получил, но не знаю, как решить проблему

image

Но проблема в том, как мне вставить в таблицу людей, что Ричард может говорить по-английски и по-китайски? я должен создать новую таблицу?

1 Ответ

0 голосов
/ 27 июня 2018

В учебнике можно было бы использовать таблицу n: m «junction», содержащую пары идентификаторов, где каждая строка представляет знания человека на одном языке:

CREATE TABLE person_languages (
    language_id NOT NULL,
    person_id NOT NULL,
    PRIMARY KEY pl_pk (language_id, person_id),
    FOREIGN KEY pl_l_fk (language_id) REFERENCES languages(id),
    FOREIGN KEY pl_p_fk (person_id) REFERENCES people(id)
);

В вашем примере Ричард говорит на английском и китайском языках, поэтому в этой таблице будет две строки (2, 1) и (2, 2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...