mysql - 多语言数据库模型人

标签 mysql database phpmyadmin

我有一个小问题,它可能很容易解决,但现在我不知道该怎么做。我尝试了很多不同的组合,但我有点困惑。

对于这种情况,我该如何设计数据库?

(示例)我有 2 个表,一种是语言,另一种是人。所以人们可以说一种或多种语言。

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

image

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

最佳答案

教科书解决方案是有一个“连接”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/

相关文章:

php - 你如何在 php 中显示页面加载时间?

php - 向bjyauthorize添加守卫时出现白屏

sql-server - 如何从具有“开始”/“结束”日期列的单个记录中获取派生 'N' 日期行?

php - 如果不存在则使用 mysqli + php 创建数据库

mysql - 使用 phpMyAdmin 导出/导入 SQL 文件时出错

mysql - PHPMyAdmin - 行编辑页面的 URL

php - 表单验证以查看电子邮件是否已存在于 MySQL 数据库中

sql - 比较单列 oracle 中的多个值

mysql - 从 PHPMYADMIN 使用 HTML 导出数据库

mysql - 更新一个日期字段小于另一日期字段的字段