假设我有一个包含用户、国家和语言表的数据库。此外,一个国家可以有多种语言,但每种语言只在一个国家使用。
User
> id
> name
> country (foreign key Country.id)
> language (foreign key Language.id)
Country
> id
> name
Language
> id
> name
> country (foreign key Country.id)
假设用户在表单中输入他的信息并选择国家。他现在只能从该国家/地区使用的语言中进行选择。
我使用 sqlalchemy。我也对 SQL/Mysql 感兴趣。
我将如何为该约束建模?为该约束建模是否有意义? 这种情况的正确术语是什么?相互依赖的外键?
谢谢!
最佳答案
正如评论中指出的那样,我的问题中的示例过于简单,可以通过删除 country
轻松解决。来自 User
表。
我最终做的是一个额外的表格,它考虑了国家和语言之间的“依赖性”。
User
> id (PK)
> name
> linguistic_combo.id
Linguistic_Combos
> country.id (PK)
> language.id (PK)
Country
> id (PK)
> name
Language
> id (PK)
> name
现在每个用户都有一个有效的语言国家/地区组合,所有有效组合都在表 Linguistic_Combos
中.
country.id
和 language.id
在Linguistic_Combos
形成复合主键。
与我原来的问题相比,一种语言可以在不同的国家/地区使用。
关于mysql - 我将如何在 SQL/SQLALCHEMY 中设计相互依赖的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53757477/