gpt4 book ai didi

database - 简单数据库中的关联实体和第三范式

转载 作者:搜寻专家 更新时间:2023-10-30 23:32:03 25 4
gpt4 key购买 nike

我对基本的数据库设计很感兴趣。我想设计一个包含州和国家公园的简单数据库。因为一个州可以有多个国家公园,一个国家公园可以位于多个州,我认为它们应该是多对多的关系。

在这种类型的关系中,关联实体是必需的,这是我的设计。

entity-diagram

我不确定实体和关联实体之间的关系。我这样做是因为:

  • 单个州不必是任何国家公园的所在地

  • 一个州可以列出多个国家公园

因此,“State”和“state_park”之间的一个(可选)对多个(可选)

  • 每个国家公园必须位于至少一个州

  • 每个国家公园可以位于多个州

因此,“state_park”和“State”之间多(可选)对一(强制)

我想知道我的思路对不对?

我还想知道在我的数据库中什么类型的数据会违反第三范式?我不认为 population 或 area 违反了这一点,因为它取决于“id(PK)”和“Name”。

最佳答案

作为您的解释,我认为您的第一个模型应该如下所示(UML 表示法):

enter image description here

  1. 每个可以有0个或更多 (0..*) 国家公园。 (州可选)
  2. 每个 国家公园 可以位于 1 个或多个 (1..*) State(s)。 (国家公园必填)


如果我们映射这种多对多关系:

enter image description here

  1. 每个国家公园都应该参与至少一个 State_National_Park。 (国家公园必填)
  2. 每个 State 可以参与 0 个或更多 (0..*) State_National_Park(s)。 (州可选)
  3. 但是,每个State_National_Park(该实体/表中存在的每个实例/记录)都应该有一个 State一个 国家公园

注意:可选和强制参与的基数显示在关系的另一端。例如,在第一个模型中,National Park 具有强制参与,因此在我们模型的另一端,我们使用 1..*(不是 0..*)。

另外,这个模型是3NF。 (但是 Area 的定义不明确)

关于database - 简单数据库中的关联实体和第三范式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com