- 降低边际成本->复用和抽象是关键
- 打破数据孤岛->数据底层必须一套
进而 , 如果这些元数据支持权限、租户管理 , 也就实现了既能打破数据孤岛进行交互 , 又能多业务兼容互不影响的效果 。具体点说 , 就是这SaaS模式下 , 我们生产的是“成品地板” , 这样的问题在于如果有新的地板拼装样式 , 我们很难调整生产线 。但在aPaaS模式下 , 我们把生产线拆成“木头生产”和“地板拼装”两步 , 只要保持木头的生产 , 同时不断更新“地板拼装规则” , 就可以源源不断地适应各种“成品地板”需求 。
所以 , aPaaS产品实际上是定义了一套标准化的“地板拼装规则”和能够识别这个规则转化成拼装动作的“地板拼装规则识别机器” , 这个机器就是能够联系meta和data的“元数据引擎” 。
2. 数据实体实现方法思路理完 , 具体实现层面上 , 关键点在于“元数据引擎”的构建 , 以及meta和data之间的联系 。为了实现“地板拼装规则”的逻辑 , 需要把所有可能出现的“规则”进行抽象 。
这里实现层面用的是field类型 , 而不是column类型 , 二者的区别在于:
A column is collection of cells aligned vertically in a table. A field is an element in which one piece of information is stored, such as the eceivedfield.
Usually, a column in a table contains the values of a single field. However, you can show several fields in a column by using a Formulaor aCombinationfield. Fields can also be shown as rows in a card view or as controls on a form. A column is just one way to display the contents of a field.
翻译过来的意思是“column只是field的一种存储形式” 。举个特别形象的例子 , 你的一个excel表格 , 就是一个data表 , 表头有3列 , 分别是姓名、性别、年龄 , 这3列就是column 。而姓名列是text文本、性别是布尔值、年龄是数值需要支持大小排序 , 这三种规则就是通过meta对象模型来实现的 。
我们事先定义好了文本、性别布尔值(男、女、其它)等规则 , 用object+field的对象模型规则存储下来 , 支持column去使用 , 即可实现上面提到的“数据和含义解耦 , 从而元数据可复用、描述可配置” 。
这种设计当数据需要存储到data中时 , data需要知晓每个字段是什么样的object , 也就是业务系统需要依赖于“元数据引擎” 。反过来 , 在业务系统在使用业务数据查询data时 , 也需要“元数据引擎”做好column+含义的处理 。
3. 业务规则的实现方法有了数据实体 , 还需要有大量的业务规则 。举个例子 , 拿线索实体来说:
- 电销业务可能认为“手机号”是个必填字段 , 否则无法联系客户
- 其它业务可能认为“手机号”和“微信号”有其一即可
推荐阅读
- 医技证书报考条件 医技证的报考条件
- 区比市大吗
- 五月天《我心中尚未崩坏的地方》歌词
- 高考加油打气励志的句子简短 高考加油打气励志的句子有哪些
- 五十岁了才开始存钱还来得及吗?有没有存钱的好方法?
- 怪物猎人惨爪龙的裂伤怎么解
- 汽车音响不响的故障诊断方法是什么原理 汽车音响不响的故障诊断方法是什么
- 汽车仪表台指示灯表示 汽车仪表台的指示灯
- 拼多多只开场景可以吗 拼多多开场景没权重的吗?
- 不辜负时光不辜负自己的句子有哪些