假设分析单位是一个人。我希望这个名字有一列,他或她说的语言有另一列。有些人说多种语言,有些人只说一种语言。但是,我不希望我的表看起来像名字,语言1,语言2,语言3,语言4,语言5,因为这会产生很多空单元格。理想情况下,我只有2列,但我知道不可能将多个值推送到单个单元格中。有什么想法吗?
答案 0 :(得分:0)
您有多对多关系,因此您所寻找的内容称为bridging table (or associative entity)。
你想要的是一个名为people
的表,代表个人,另一个名为languages
的表用于每种语言。每个人和每种语言在各自的表格中分别排成一行。
people
:
ID | Name
----------
1 | Aaron
2 | Bob
3 | Clyde
languages
:
ID | Name
------------
1 | English
2 | French
3 | Spanish
然后你需要使用第三个表(比如spoken_languages
),它使用外键将两个表绑定在一起:
person_id | language_id
-----------------------
1 | 1
2 | 1
2 | 2
3 | 3
在上面的例子中: