2009-12-29 33 views
2

我确定我错过了一些东西,而且我明白错了。我需要考虑什么样的不同关系?

1:(0-1)(一至零或一)

1:1(一对一)

1:(0-N)(一至零,一个或多个)

(0-M):(0-N)(零个,一个或多个零,一个或多个)

米:N(多对多)

米:1(多对一)

米:(0-1)(许多以0或1,即,10人共享一个会议室)

约束关系: 我不知道这些(可能是我刚刚发明他们,笑):

1:最大(一到规定的最大数量,即邮件帐户可能不具有超过1000级的邮件)

1:分钟(一到规定的最小量,即,车辆必须具有至少1轮)

1:最小 - 最大(一到指定的最小和最大数量之间)

X:Y(X实体到y的实体,即总有两个教师负责五个类)

X:分钟X:最大X:最小 - 最大

回答

3

ER模型的术语,有1:11:NM:N。这是你可以放入图中的东西。

关系总是由相关实体定义。在ER模型中,不存在“双关系”,“过期关系”,“三元关系”等。

一对实体或者是相关或不相关的,并且关系总是二元的。这就是ER模型的工作原理。

现在,想象一下AB有关系。这提出了两个问题:

  1. 可能A与其他东西有关吗?
    • 5月B与其他事情有关吗?

这里是答案矩阵:

1  2 Relationship 
Yes Yes M:N 
No Yes 1:N 
Yes No N:1 (same as 1:N) 
No No 1:1 

这包括所有的可能性。

在商业逻辑方面,可以设想任何限制条件(其中大多数限制条件都适用于上述三种关系方案之一并进行一些额外的检查)。

但是,这不能仅由ER型号覆盖。

3

就数据库本身而言(因为这个问题是关于数据库设计的),实际上只有两种关系类型:1:11:0..1。外键可以是空的或不可空的。

如果您计算反比关系,那么也有一对多(1:N)。

当然,你可以实现不同种类的约束关系,但可能性几乎是无限的;要知道你必须“思考”哪些,你必须知道域模型。

更新:我想也许这将是有用的解释如何匹配到你列出的其他更多的UML类型的关系。在此列表中,1:N意味着该RS实体具有与所述LS实体可为空的或不可为空的外键/关联:

(0-M):(0-N) - AKA M:N,这(1:N)(M:1)的组合为1:N和1:M,即:(1:N)(M:1)
m:n - 与上述相同:M> = 1且N> = 1。 1(非常罕见,难以实现)
米:1 - 同1:N,不可为空
米:(0-1) - 同1:N,可为空
1:最大 - 同1:N与检查:N < = max时,不可为空
1:分钟 - 同1:N与检查:N> =分钟,不可为空
1 :最小 - 最大 - 与1:N相同检查:N> = min和N < =最大,不可为零
x:y与(1:N)(M:1)相同,检查:N = x和M = Y,假设所有ñ涉及所有中号(否则这不是有效的关系)

甲等等 - 我的观点是数据库只处理“基本”关系,任何其他类型的关系只是这些关系和约束的组合。

一旦你掌握了它,它实际上变得比多重性更容易。只要找出与什么相关的内容,以及在哪个方向上,并在需要时实施特定规则。

+0

谢谢!我完全同意你的观点。除了基本关系1:1和1:(0-1)以外的任何内容都可以在代码中以编程方式处理。我所做的基本上是通过后端配置ER,然后自动生成元数据,关系模型和PHP代码,以尽可能简化开发。这就是为什么我试图预先考虑所有可能的关系的原因:-) – openfrog 2009-12-29 18:45:18

2

从关系的角度来看,Object Role Modeling提供了丰富的概念和工具来帮助。你会发现有几十个,包括你列出的所有内容。这些工具比您可能会怀疑的功能更强大,包括使用规则,触发器等来生成数据库模式以执行约束的能力。

下面是维基百科文章中的插图。

https://upload.wikimedia.org/wikipedia/commons/0/08/Schema_for_Geologic_Surface.gif

如果你想在一些深入地探讨这个,here's a link让你从你的问题的方面开始。

相关问题