<!--[if !supportLists]-->1. <!--[endif]-->一个属性组(attributeGroup)必须关联于一个条目(item)或关系(relationship) <!--[if !supportLists]-->2. <!--[endif]-->一个属性组(attributeGroup)可能含有用于标识条目(item)或关系(relationship)的属性,或它可能含有描述条目(item)或关系(relationship)的属性 <!--[if !supportLists]-->3. <!--[endif]-->不同类型的几条属性组(attributeGroup)可能关联相同的条目(item)或关系(relationship) <!--[if !supportLists]-->4. <!--[endif]-->一个属性组(attributeGroup)可能含有多个属性,也有可以不含属性,这时它充当一个标记.
一个属性组(attributeGroup)类似于SQL视图中的一行。它是一个属性的投影。相同的属性可能出现在同一个条目(item)或关系的多个属性组(attributeGroup)中。属性组(attributeGroup)可能没有属性,这种情况下它用于充当一个标记。
每个属性组(attributeGroup)可能有下列描述属性组(attributeGroup)自身的元属性
<!--[if !supportLists]-->1. <!--[endif]-->有一个Id在它所关联的条目(item)或关系(relationship)的范围内中唯一的,并充当key(如果条目(item)或关系(relationship)只有一个记录时是可选地) <!--[if !supportLists]-->2. <!--[endif]-->记录的日期/时间是最后修改时间(可选的)
为什么提供属性组(attributeGroup)这样一个东西,而不是直接让条目(item)或关系(relationship)拥有属性呢?
因为真实世界中一个对象从不同角度来看它可能有不同的属性,如一个计算机,从网管员的角度看,它有主机名,IP地址,MAC址址,CPU型号,MEM大小, 硬盘容量等属性,而对财务部门的角度来看,它有订单号,单价,购买日期,使用年限,维护人等信息, 如果我们提供属性组(attributeGroup)这个概念后,用户在建立模型时可以从不同角度对实物建模,一个条目(item)可以有一到多个属性组(attributeGroup),每个属性组(attributeGroup)针对一个或多个使用者.
3.1.4继承
以上三个对象都像类一样可以继承,用户可以用它们来对自已的领域建模,它们继承的行为如下:
属性组(attributeGroup)的继承非常类似于普通的类,当一个属性组(attributeGroup)继承另一个属性组(attributeGroup)时,就具有它的所有属性,但它没有方法。属性不能重载。
条目(item)的继承则表示: 当一个条目(item)继承另一个条目(item)时,就具有它的所有属性组(attributeGroup).此外它还有二个特殊的地方:
1. 当一个条目(item)继承另一个条目(item)时,子条目(item)中有一个属性组(attributeGroup), 该属性组在子条目(item)重复申明了, 或该属性组(attributeGroup)也有一个父属性组(attributeGroup),它的父属性组(attributeGroup)已经存在于父条目(item)中,那么子条目(item)中的该属性组(attributeGroup)覆盖父条目(item)中的父属性组(attributeGroup),
2. 当出现上述情况,同时子条目(item)的约束与父条目(item)不一致时,需要注意, 父条目(item)中的约束必须比子条目(item)中的约束更严格.
这里说约束是指条目与属性组的约束.
关系(relationship)是条目(item)的一个子类,因此它的继承行为与条目(item)的继承行为完全一致。
3.1.5数据类型
Integer 通过指定范围来确定是int8, int16, int32,int64
Numeric 用户指定精度
Money 专用于存储货币类型的数据
String, 用户指定长度来确是是 char, varchar还是text
date/timestamp/duration
boolean
ipAddress ip地址,包括ipv4和ipv6
physicalAddress MAC地址
GUID类型
XML 数据
数组
在这里我就不详细说了,将会在概要设计中说明.
出处:博客园
责任编辑:bluehearts
上一页 GraphDatabase在关系数据库中的实现 [2] 下一页 GraphDatabase在关系数据库中的实现 [4]
◎进入论坛网络编程版块参加讨论
|