本随笔是根据outsystem的英文文档第六章进行翻译,仅包含部分。
1.创建数据关系
数据类型很少是孤立的
- 丰富的数据模型,保证数据间可以建立关系
- 数据间的关系重要性和数据本身是一样的
2.outsystem中的数据
为了创建数据间的关系, 一个实体必须有一个标识符(主键)
- 平台自动生成Id属性,为长整形(默认)
- Is Mandatory
- Is AutoNumber,默认
- 可能的类型:文本,整形/长整形,或者任何其它实体标识符
outsystem只有简单的主键。没有复合键。
3.outsystems数据引用
实体通过彼此的标识符进行引用
- 创建一个实体标识类型的引用属性(外键)
- Is Mandatory 应用属性会由数据库进行检查
- 使用EntityNameId作为一个属性名称来暗示平台(例如:属性UserId 会自动转换成User 标识符类型)
对于部分属性,NullIdentifier() 等价于NULL值。
3.1一对一的关系
扩展实体
扩展实体和基类的实体共享自己的identifier(标识符)。如上基类实体Author,扩展实体Biogreaphy。
扩展实体是基类实体的延伸:
- biography有一个Author Identifier(基类的标识符)类型的标识符
- Is AutoNumber 将会被自动设置为No类型
- biography 标识符必须明确的分配给Author identifier
3.2一对多
主从关系
从属实体已用它的主实体
一个Pulisher发布多本Books
- Book实体有一个指向Publisher实体的引用属性
多个Books 都是self-published, 所以他们没有Publisher
- 引用属性既可以是mandatory,也可以不是mandatory
3.3多对多
4.连接实体
一个中间实体是用来在两个实体间创建联系的。
由于一个Book有多个Authors,而一个Author又可以写多本Books, 这样就需要一个BookAuthor联系实体。
- Author标识符类型的引用属性AuthorId
- Book标识符类型的引用属性BookId
- 用来表示BookId和AuthorId的独一无二的索引(建议)
5.参照完整性
如何保证
- 为每个引用属性指定删除规则
当删除引用实体实例时
- Protect-不允许删除引用实体实例(默认)
- Delete-将引用实体实例级联删除为该实体的实例
- Ignore-不保证参照完整性(非常不建议使用)
6.索引
通过某些属性加速数据检索
- 花费额外的写/存空间
- 引用属性会自动创建索引
- 自定义索引可以应用到单个或多个属性
避免重复
- 定义所以为Unique
7.实体图
数据模型可视化表示法
- 由开发人员设计
- 数据模型的局部视图
- 代表
- 实体
- 关系导航
- 关系删除规则:
- Protect
- Delete
- Ignore
Note:个人觉得outsystem不合适自身情况,停止更新关于outsystem随笔。(2020-01-06)
在接触outsystem这段时间,找到了个相关QQ群(320049517),感谢群主提供的文档。