具有多种语言的数据库模型人

时间:2018-06-27 18:46:09

标签: mysql database phpmyadmin

我有一个小问题,那就是解决起来可能很简单,但是现在我不知道该怎么做。我尝试了很多不同的作品,但我有些困惑。

如何针对这种情况设计数据库?

(示例)我有2个表,其中一种语言,另一种语言。这样人们可以说一种或多种语言。

这是我得到的模型,但不知道如何解决问题

image

但是问题是我如何将Richard会说英语和中文的人表插入?我应该创建一个新表吗?

1 个答案:

答案 0 :(得分:2)

教科书解决方案将是拥有一个“结” n:m表,其中包含成对的ID,其中每行代表一种语言的人的知识:

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)
);

在您的示例中,Richard会说英语和中文,因此此表中将有两行(2,1)和(2,2)。