第3章,数据模型进阶|跨模块实体的关联关系

197 阅读3分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第4篇文章,点击查看活动详情

介绍

在我们实际的项目中,我们经常需要根据不同的业务模块,进行模块之间的拆分。在低代码开发的最佳实践中,我们也是需要根据不同的业务模块进行模块的拆分。

对模块的拆分,至少有3方面可以帮助我们更好的构建应用

  • 首先,清晰各个模块的业务逻辑。
  • 其次,构建不同业务领域的开发团队。
  • 最后,可以方便维护和系统升级。

今天我们就一起来学习一下,在西门子低代码里面,拆分了不同的模块之后,数据实体如何完成跨模块的关联。

例如:在订单模块的订单实体,需要关联会员模块的会员实体。

场景

在前面两章,我们完成了应用的构建,现在让我们完成球员登陆系统的业务需求吧,新的业务需求将在新的迭代中完成。

  • 他希望球队中的球员能够登录。
  • 他希望不同的球队能够只管理他们的球员,而不是不同球队的球员。

跨模块关联

我们已经了解 西门子Mendix 的不同关联类型,并且在数据模型进阶中,我们了解到可以在两个实体之间添加多个关联。但是我们知道还可以创建跨模块关联吗?

在 西门子Mendix 中,我们可以将您的应用程序划分为多个模块,这通常在功能级别上完成。我们的应用在创建时始终具有三个模块:SystemAdministrationMyFirstModule

  • System 模块使您的应用程序运行,它包含每个应用程序所需的基本数据结构:用户、文件、会话等。此模块是禁止使用的,这意味着您作为 Mendix 开发人员无法更改这个模块。
  • 管理模块是允许用户拥有和管理帐户的模块。
  • MyFirstModule 模块是您开始构建应用程序的模块。

对于更大的应用程序,您可能会添加更多模块,或者您可以从 Mendix Appstore 获取模块。通过创建跨模块关联,您可以连接不同模块中的数据。

现在假设 Adrian 希望运动员能够拥有一个账户。您可以通过创建从PlayerAccount的跨模块关联来实现这一点。这就是它在领域模型中的样子:

image.png

当您右键单击关联时,您可以选择Go to other side,这将导航到另一个模块中的关联实体。

系统用户模块

系统用户 是关于可以存储在数据库中的对象的信息。您可以存储四个系统成员:

  • 创建日期;创建对象的日期和时间。
  • 更改日期;上次更改对象的日期和时间。
  • 所有者;创建对象的用户。
  • 改变者;上次更改对象的用户。

默认情况下,此信息不存储在数据库中。这是因为对于很多对象,您实际上并不需要这些信息,并且 Modeler 不希望不必要地使您的数据库混乱。但是,您可以选择存储这些系统成员中的一个或多个,方法是在实体的属性中检查它们。像这样:

image.png

在此示例中,您将在 Soccer Squad 应用程序中存储创建特定球队的人员。

总结

通过实体的跨模块关联,可以让我们更好管理和维护我们的应用程序的模块。通过这几章节的学习,我们学习了数据模型的进阶。当然,为了让我们往更资深的方向发展,我们需要进一步来学习,在未来,我将进一步来探讨一下,数据模型的高阶能力。敬请期待!