什么是领域模型?
In Mendix 我们在域模型中对数据库进行建模。它类似于 ERD 或实体关系图。不同之处在于,当您的应用程序编译时,它还会创建一个基于该图建模的功能数据库。 Mendix 具有内置数据库选项,但也将支持 IBM DB2、Microsoft SQL Server、MySQL、Oracle 和 PostgreSQL。
此 Mendix 文档在域模型上这样说: '领域模型是一种以抽象方式描述应用程序使用的信息(或数据)的模型。它是应用程序架构的核心。每个 模块 有自己的领域模型,用于描述该模块中使用的数据。应用中的所有模块都可以使用应用内所有领域模型的数据。”
如果这让您感到困惑,我会尝试用我自己的话简单地解释一下,域模型是实体的集合以及它们如何以可视的方式相互关联。
实体可以与传统 SQL 中的表进行比较。
实体具有属性(您可以将其视为字段),并且具有字符串、整数和日期时间等原始类型。实体可以以 1–1、1-* 或 *-* 的形式相互关联。
如果您有兴趣了解更多有关如何 Mendix 保持底层数据库与你的模型同步,请查看此 视频 我在这里详细介绍了其工作原理。
理解概括
您还可以通过创建泛化实体来使实体从父实体继承属性。泛化为子实体提供了父实体的所有属性,您可以在流程或页面上使用实体时将其转换为泛化实体。这与其他传统编码方法中使用的继承非常相似。
3 种不同类型的实体
在我看来,实体最酷的地方在于它们有 3 种不同的类型: 一贯 蓝色的, 非持久,即橙色,以及远程实体,即紫色。
持久实体 可以提交到数据库并从数据库中检索。 非持久性实体 存在于浏览器的内存中,并在用户会话到期时被清除。这些只能通过关联检索,并且永远不能提交到数据库。这使得它们非常适合集成,或用于临时存储数据以用于计算。实体可以采用的最终形式是 远程实体. 这是通过以下方式实现的 Mendix DataHub 是一个开放的元数据目录。它允许您使用 Odata 通信在应用程序之间共享数据,以来回发送数据
您可以使用 DataHub 从一个应用程序中公开现有表,并在您或您的公司创建的任何其他应用程序中使用该数据。
请记住,处理实体时,安全性始终很重要,因为它控制着对应用数据的访问。在域模型中,右键单击任何实体以打开其属性,然后转到访问选项卡,以配置谁可以创建、编辑和查看您的数据。
最后的思考
不要害怕尝试新事物并改变数据结构——有时简单的改变可以大大提高性能。 在执行此操作之前,请务必备份您的应用程序数据,以便在发生故障时可以回滚!
要了解更多信息,请访问 academy.mendix.com 并寻找关于领域模型和数据中心的学习路径。
