假设分析的单位是人。我想有一列的名字和另一列的语言,他或她说。有些人说多种语言,而有些人只说一种。但是,我不希望我的表看起来像name,language1,language2,language3,language4,language5,因为那样会产生很多空单元格。理想情况下,我只会有2列,但我知道不可能把多个值塞进一个单元格。有什么想法吗?
mkshixfv1#
你有一个多对多的关系,所以你要找的是一个桥接表(或关联实体)。你要的是一张叫 people 它表示个体,另一个表称为 languages 每种语言。每个人和每种语言在各自的表格中构成一个单独的行。 people :
people
languages
ID | Name ---------- 1 | Aaron 2 | Bob 3 | Clyde ``` `languages` :
1 | English2 | French3 | Spanish
然后你需要使用第三张table(比如 `spoken_languages` ),它使用外键将两个表绑定在一起:
1 | 12 | 12 | 23 | 3
在上述示例中: 亚伦只会说英语。 鲍勃说英语和法语。 克莱德只会说西班牙语。
1条答案
按热度按时间mkshixfv1#
你有一个多对多的关系,所以你要找的是一个桥接表(或关联实体)。
你要的是一张叫
people
它表示个体,另一个表称为languages
每种语言。每个人和每种语言在各自的表格中构成一个单独的行。people
:ID | Name
1 | English
2 | French
3 | Spanish
person_id | language_id
1 | 1
2 | 1
2 | 2
3 | 3