php—当一个字段的单位可以有多个值时,如何限制mysql表中的列数?

f0brbegy  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(275)

假设分析的单位是人。我想有一列的名字和另一列的语言,他或她说。有些人说多种语言,而有些人只说一种。但是,我不希望我的表看起来像name,language1,language2,language3,language4,language5,因为那样会产生很多空单元格。理想情况下,我只会有2列,但我知道不可能把多个值塞进一个单元格。有什么想法吗?

mkshixfv

mkshixfv1#

你有一个多对多的关系,所以你要找的是一个桥接表(或关联实体)。
你要的是一张叫 people 它表示个体,另一个表称为 languages 每种语言。每个人和每种语言在各自的表格中构成一个单独的行。 people :

ID | Name
----------
1  | Aaron
2  | Bob
3  | Clyde
``` `languages` :

ID | Name

1 | English
2 | French
3 | Spanish

然后你需要使用第三张table(比如 `spoken_languages` ),它使用外键将两个表绑定在一起:

person_id | language_id

1 | 1
2 | 1
2 | 2
3 | 3

在上述示例中:
亚伦只会说英语。
鲍勃说英语和法语。
克莱德只会说西班牙语。

相关问题