如何在sql/sqlalchemy中设计相互依赖的外键

0kjbasz6  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(308)

假设我有一个包含user、country和language表的数据库。另外,一个国家可以有几种语言,但每种语言只在一个国家使用。

  1. User
  2. > id
  3. > name
  4. > country (foreign key Country.id)
  5. > language (foreign key Language.id)
  6. Country
  7. > id
  8. > name
  9. Language
  10. > id
  11. > name
  12. > country (foreign key Country.id)

假设用户在表单中输入信息并选择一个国家。他现在只能从那个国家所说的语言中选择。
我和炼金术一起工作。我也对sql/mysql感兴趣。
我该如何建立约束模型?建立约束模型有意义吗?这种情况的恰当术语是什么?相互依赖的外键?
谢谢!

zengzsys

zengzsys1#

正如在评论中指出的那样,我问题中的例子过于简单化了,可以通过删除 countryUser table。
我最后做的是一个额外的表格,考虑到国家和语言之间的“依赖性”。

  1. User
  2. > id (PK)
  3. > name
  4. > linguistic_combo.id
  5. Linguistic_Combos
  6. > country.id (PK)
  7. > language.id (PK)
  8. Country
  9. > id (PK)
  10. > name
  11. Language
  12. > id (PK)
  13. > name

现在每个用户都有一个有效的语言国家组合,所有有效的组合都在表中 Linguistic_Combos . country.id 以及 language.idLinguistic_Combos 形成复合主键。
与我原来的问题相比,一种语言可以在不同的国家说。

展开查看全部

相关问题