多语言数据库模型人

r1zk6ea1  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(384)

我有一个小问题,可能很容易解决,但现在我不知道怎么做。我试过很多不同的作文,但我有点困惑。
我应该如何为这种情况设计一个数据库?
(例如)我有两个表,一个是语言表,另一个是人表。所以人们可以说一种或多种语言。
这是我得到的模型,但不知道如何解决问题

但问题是我该如何在人物表中插入richard会说英语和汉语的内容?我应该创建一个新表吗?

00jrzges

00jrzges1#

教科书中的解决方案是有一个“junction”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)。

相关问题