数据的完整性
如何确保我的数据的完整性?
Mendix 支持不同的方法来确保应用程序数据的完整性:
- 资料类型 – 确保只可存储有效的数据类型
- 验证规则 – 验证数据是否唯一、指定且在一定范围内
- 事件处理程序 – 使用微流提供自定义逻辑来验证数据
- 访问规则 – 确保只有授权用户才能访问或修改数据
- 参照完整性 – 确保数据与所需的相关数据一起存储
我可以使用哪些数据类型 Mendix?
数据类型定义属性中可以存储什么类型的数据。例如,类型确保文本字段仅包含文本,数字字段仅包含数字。
您可以使用以下类型作为属性:
- 自动编号 – 自动生成的数字
- 二进制 – 二进制数据
- 布尔 – 正确或错误
- 日期和时间 – 某个时间点
- 十进制 – 正数或负数
- 列举 – 一组预定义值中的一个值
- 哈希字符串g – 字符串的哈希值
- 整数 – 一个 32 位整数
- 长 – 一个 64 位整数
- 串 – 包含字母、数字、空格和其他字符的文本
有关详细信息,请参阅 Attributes ,在 Mendix Studio Pro 指南.
我可以使用哪些验证规则 Mendix?
验证规则指定了您的数据应遵循的规则。如果您的数据不遵循指定的规则,则您在尝试保存数据时会收到错误。
根据规则类型,这将由 Mendix 运行时或由数据库。
如何使用事件处理程序 Mendix?
事件处理程序可让您在某些事件之前或之后运行逻辑。此方法有很多用例,例如:
- 在创建对象时设置默认值 – 如果要初始化一个新对象(例如,具有非常量默认值的对象),可以使用 before-create 事件
- 保留审计线索 – 有时需要记录对数据所做的所有更改,事后事件可让您通过将任何更改存储到审计跟踪对象中( 审计跟踪 模块中的 Mendix 市场提供了这个确切的功能)
- 验证数据更改 – 事件前可用于触发验证数据更改的微流
要在应用程序中的所有实体上设置事件处理程序,可以使用 Mendix Java API。例如,要为所有实体设置提交前事件监听器,请使用此方法: Core.getListenersRegistry().registerAfterCommitListener.
如何配置访问规则?
数据完整性的一个主要方面涉及谁被允许更改哪些数据,因此数据授权是 Mendix 平台。用户角色可以直接与这些角色被允许对最终用户的数据执行的操作相关联。
您可以在实体上定义的访问权限方面包括:
- 谁可以读取或更改实体
- 谁可以读取或更改属性
- 谁可以创建或删除实体
您还可以使用 XPath 约束来定义所谓的 行级安全,定义允许用户查看哪些对象。这可用于确保客户只能查看其数据、案例工作者只能查看与其案例相关的数据,并且租户在多租户应用程序中只能访问其租户数据。
引用完整性如何发挥作用 Mendix?
使用删除行为属性添加引用完整性。删除行为定义当对象被删除时关联对象应该发生什么。可以为关联的每个端点配置以下选项。
价值观 | 描述 |
---|---|
删除{实体名称}对象但保留{其他实体名称}对象 | 当删除一个对象时,关联的对象不会被删除。 |
删除 {实体名称} 对象和 {其他实体名称} 对象 | 当删除一个对象时,关联的对象也会被删除。 |
仅当没有 {其他实体的名称} 对象时才删除 {实体的名称} 对象 | 仅当对象不与任何其他对象关联时才可删除该对象。 |
这是两个例子:
- 删除 {实体名称} 对象但保留 {其他实体名称} 对象(默认值) – 如果你想删除任何相关的 客户资料 当一个 对客户的 被删除:
- 仅当没有 {其他实体的名称} 对象时才删除 {实体的名称} 对象 – 如果你想删除 对客户的 只有当它不与任何 下单: