数据完整性工具 - 验证规则、事件处理程序和访问规则 | Mendix 评估指南

Skip navigation

Data Integrity

如何确保数据的完整性?

Mendix 支持通过多种方式以确保您的应用程序数据的完整性:

  • 资料类型 – 确保只能存储有效的数据类型
  • 验证规则 – 验证数据是否唯一、指定且在范围内
  • 事件处理程序 – 使用微流提供自定义逻辑来验证数据
  • 访问规则 – 确保只有授权用户才能访问或修改数据
  • 参照完整性 – 确保数据与所需的关联数据一起存储

可以在 Mendix 中使用哪些数据类型?

数据类型定义属性中可以存储的数据类型。例如,该类型确保文本字段仅包含文本,数字字段仅包含数字。

您可以对属性使用以下类型:

  • 自动编号 – 自动生成的号码
  • 二进位 – 二进制数据
  • 布尔值 – 对或错
  • 日期和时间 – 时间点
  • 小数 – 正数或复数
  • 枚举 – 一组预定义值中的一个值
  • Hashed string – 字符串哈希值
  • 整数 – 32 位整数
  • Long – 64 位整数
  • 字符串 – 包含字母、数字、空格和其他字符的文本

有关更多信息,请参见 Mendix Studio Pro 指南中的属性

可以在 Mendix 中使用哪些验证规则?

验证规则指明数据应遵循的规则。如果数据不符合指定的规则,则在尝试保存数据时将收到反馈错误的信息。

根据规则类型,这将由 Mendix Runtime 或数据库处理。

如何在 Mendix 中使用事件处理程序?

事件处理程序使您能够在某些事件之前或之后运行逻辑。有很多用例,例如:

  • 在创建对象时设置默认值 – 如果要初始化一个新对象(例如,一个具有非恒定默认值的对象),则可以使用创建前事件
  • 保持审计追踪 – 有时需要跟踪对数据所做的所有更改,事后事件使您可以通过将所有更改存储到审计跟踪对象(Mendix Marketplace 中的 Audittrail 模块提供了此确切功能)做到这一点
  • 验证数据更改 – 事件发生前可用于触发微流,以验证数据更改

要在应用程序中的所有实体上设置事件处理程序,可以使用 Mendix Java API。例如,要为所有实体设置提交前事件侦听器,请使用以下方法:Core.getListenersRegistry().registerAfterCommitListener

如何配置访问规则?

数据完整性的一个主要方面涉及到谁可以更改哪些数据,因此数据授权是 Mendix 平台的一个内置功能。用户角色可以直接与这些角色对最终用户数据所能执行的操作权限进行绑定。

您可以在实体上定义的访问权限包括:

  • 谁可以读取或更改实体
  • 谁可以读取或更改属性
  • 谁可以创建或删除实体

您还可以使用 XPath 约束来定义所谓的行级安全,此行级安全定义了允许用户查看的对象。这可以用来确保客户只能看到他们的数据,案例工作人员只能看到与其案例相关的数据,并且租户只能在多租户应用程序中访问其租户数据。

参照完整性如何在 Mendix 中发挥作用?

参照完整性通过使用删除行为属性添加。删除行为定义删除对象时关联对象应发生的情况。可以为关联的每个末端配置以下选项。

描述
删除 {实体名称} 对象,但保留 {其他实体名称} 对象 删除对象时,不会删除关联的对象。
删除 {实体名称} 对象和 {其他实体名称} 对象 删除对象时,删除关联的对象。
仅当没有 {其他实体名称} 对象时,才能删除 {实体名称} 对象 如果对象未与任何其他对象关联,则只能删除该对象。

以下是两个例子:

  • 删除 {实体名称} 对象,但保留 {其他实体名称} 对象(默认值)– 当一个 Customer 已被删除时,如果要删除任何关联的内容,则使用 Customer_Profile
  • 仅当没有 {其他实体名称} 对象时,才能删除 {实体名称} 对象 – 如果您希望仅在 Customer 不与任何 Order 关联时对其删除,可使用此选项: