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

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

假设我有一个包含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感兴趣。
我该如何建立约束模型?建立约束模型有意义吗?这种情况的恰当术语是什么?相互依赖的外键?
谢谢!

zengzsys

zengzsys1#

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

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.idLinguistic_Combos 形成复合主键。
与我原来的问题相比,一种语言可以在不同的国家说。

相关问题