我有一个小问题,它可能很容易解决,但现在我不知道该怎么做。我尝试了很多不同的组合,但我有点困惑。
对于这种情况,我该如何设计数据库?
(示例)我有 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)。
关于mysql - 多语言数据库模型人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069556/