155144

2008年5月12日14时28分

导航

4-基数(Cardinality)

        基数(Cardinality)用实体间实例的数值对应关系表示,它反映了两个实体间的数值联系,从父实体的角度描述了一对实体间的数量维度,换句话说,基数中的数字是描述父实体在子表中可能出现的次数范围,基数实际是1个闭区间基数可能是:

1)0,1

        一个父实体,在子表中可能出现1次,或者不出现(0)。例如:

        用户和驾照的关系,用户为父实体,一个用户要么没有驾照,要么只能拥有一个驾照。

        在这里为基数0,1。

2)0,n

        一个父实体,在子表中可能出现多次,或者不出现(0)。例如:

        教室和学生的关系,教室为父实体:当教室里没有学生时,0值存在;教室里可以只有1个学生,1值存在;教师里可以有很多学生,n值存在。

        在这里为基数0,n。

3)1,1

 

4)1,n

////////////////////////////////////////////////////////////////////////////
以上是对基数的理解, 可是在实际使用中仍有点疑惑自己的理解是否正确.

/////////////////////////////////////////////////////////////
网络上摘抄的关于Dependent和Mandatory的说明  

从实用的角度来讲,一对多和多对一没什么分别。  
这里你要注意的是,一对多实际上可以理解为主表和子表。主表的一条记录可以和子表的N条记录有关系。  
如果要想让主表的主键到子表中继续做主键,子表的记录就依赖主表的记录而存在,此时应该在(子表   to   主表)选项里面的   Dependent   上打勾,这时   Mandatory   自动被选上。  如果不需要主表的主键到子表中继续做主键,主表的记录仅对子表做约束或者说是强制,这时只在(子表   to   主表)选项里面的   Mandatory   上打勾。  
如果不需要主表的主键到子表中继续做主键,子表里的这个字段可以是主表里的数据同时也可以为空,在(子表   to   主表)选项里面的   Mandatory   上的勾去掉。

 

posted on 2008-05-17 08:47  155144  阅读(1739)  评论(0编辑  收藏  举报