关系数据库概念

时间:2010-08-26 08:35:51

标签: relational-database

我正在尝试为关系数据库布置概念,并遇到了一些概念问题:

  1. 如果我有多个彼此“嵌套”的离散实体/具有层次结构,例如:
  2. 老板可以拥有多名员工。这些员工拥有不同的项目,而一个项目又有多个部分。

    所以

    B1-Bn:
    
          E1-En
    
               P1-Pn
    
                    Section1 -SectionN
    

    如何在数据库中最好地映射?

    或者换句话说,如何在关系数据库中最好地映射此层次结构?

    1. 现在我有与这些员工互动的客户。
    2. 老板们满足了他们 然后他们决定哪个员工会为他们工作。 然后为他们分配项目,包含一个或多个部分。

      如何最好地映射。

      1. 关系1-n,m-n,1-1:它们可以用于例如:
      2. 由于1-n关系,这是一个外键。 由于m-n关系,这是一个ManytoManyField。

        1. 是否有一个优秀的在线工具可以更好地理解/可视化。
        2. 非常感谢您的时间!

1 个答案:

答案 0 :(得分:1)

您可能希望学习关系数据库设计课程;这个主题需要花费几天时间来解释或掌握。但是你走在正确的轨道上。

您可能会看到的第一件事是层次结构,但在您知道它之前会存在不是分层的关系,因此形成了一个网络。 这就是关系数据库不能与层次结构一起使用的原因。

您可以识别不同类型的实体,并为每种类型设置一个表。

对于每个实体类型,您可以标识此类实体的属性 - 每个属性都是表的一列。 如果属性没有原子值,而是结构化值,则必须将这些结构化值视为实体,并且必须为其提供自己的表,并且该属性将是引用该表的外键。

通过这种方式,您将形成一个由外键链接的表网络。这称为实体关系图。许多设计者主张首先创建这样的图,而不直接将实体类型映射到表。它们允许图中实体类型之间的多对多关系。另一方面,表之间的外键总是多对1或1对1。因此,这些设计人员有一个“实现”步骤,在这个步骤中,他们为每个多对多关系引入了一个附加表。就个人而言,我不会在我的图表中使用多对多关系。

相关问题