假设我有一个包含user、country和language表的数据库。另外,一个国家可以有几种语言,但每种语言只在一个国家使用。
User
> id
> name
> country (foreign key Country.id)
> language (foreign key Language.id)
Country
> id
> name
Language
> id
> name
> country (foreign key Country.id)
假设用户在表单中输入信息并选择一个国家。他现在只能从那个国家所说的语言中选择。
我和炼金术一起工作。我也对sql/mysql感兴趣。
我该如何建立约束模型?建立约束模型有意义吗?这种情况的恰当术语是什么?相互依赖的外键?
谢谢!
1条答案
按热度按时间zengzsys1#
正如在评论中指出的那样,我问题中的例子过于简单化了,可以通过删除
country
从User
table。我最后做的是一个额外的表格,考虑到国家和语言之间的“依赖性”。
现在每个用户都有一个有效的语言国家组合,所有有效的组合都在表中
Linguistic_Combos
.country.id
以及language.id
在Linguistic_Combos
形成复合主键。与我原来的问题相比,一种语言可以在不同的国家说。