如何在数据库中存储m:m关系数据?
假设m知道m语言,m语言可以被任何人知道。
即任意数量的人都可以知道任何数量的语言,并且可以为不同数量的人知道任何数量的语言。
答案 0 :(得分:2)
多对多关系最好与联结表一起存储。
http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php
在您的情况下,这将被称为PersonLanguage
PersonId和LanguageId都有外键。
Person和Language表都与PersonLanguage表有一对多的关系。
请注意,您可以在PersonId和LanguageId上使用复合主键,也可以创建一个包含自动递增数字的单独PersonLanguageId列。
答案 1 :(得分:1)
3张桌子..
Person (PersonId)
Language (LanguageId)
Person_Languages (Id,PersonId,LanguageId)
答案 2 :(得分:0)
通常这样的事情有三个表:
人(身份,姓名等)
语言(身份证,姓名等)
SpokenLanguages(peopleID,languageID)
...其中SpokenLanguages是一个关联表,它使用外键将每个人与他/她说的语言相关联。