“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第4篇文章,点击查看活动详情”
介绍
在我们实际的项目中,我们经常需要根据不同的业务模块,进行模块之间的拆分。在低代码开发的最佳实践中,我们也是需要根据不同的业务模块进行模块的拆分。
对模块的拆分,至少有3方面可以帮助我们更好的构建应用
- 首先,清晰各个模块的业务逻辑。
- 其次,构建不同业务领域的开发团队。
- 最后,可以方便维护和系统升级。
今天我们就一起来学习一下,在西门子低代码里面,拆分了不同的模块之后,数据实体如何完成跨模块的关联。
例如:在订单模块的订单实体,需要关联会员模块的会员实体。
场景
在前面两章,我们完成了应用的构建,现在让我们完成球员登陆系统的业务需求吧,新的业务需求将在新的迭代中完成。
- 他希望球队中的球员能够登录。
- 他希望不同的球队能够只管理他们的球员,而不是不同球队的球员。
跨模块关联
我们已经了解 西门子Mendix 的不同关联类型,并且在数据模型进阶中,我们了解到可以在两个实体之间添加多个关联。但是我们知道还可以创建跨模块关联吗?
在 西门子Mendix 中,我们可以将您的应用程序划分为多个模块,这通常在功能级别上完成。我们的应用在创建时始终具有三个模块:System、Administration 和MyFirstModule。
- System 模块使您的应用程序运行,它包含每个应用程序所需的基本数据结构:用户、文件、会话等。此模块是禁止使用的,这意味着您作为 Mendix 开发人员无法更改这个模块。
- 管理模块是允许用户拥有和管理帐户的模块。
- MyFirstModule 模块是您开始构建应用程序的模块。
对于更大的应用程序,您可能会添加更多模块,或者您可以从 Mendix Appstore 获取模块。通过创建跨模块关联,您可以连接不同模块中的数据。
现在假设 Adrian 希望运动员能够拥有一个账户。您可以通过创建从Player到Account的跨模块关联来实现这一点。这就是它在领域模型中的样子:
当您右键单击关联时,您可以选择Go to other side,这将导航到另一个模块中的关联实体。
系统用户模块
系统用户 是关于可以存储在数据库中的对象的信息。您可以存储四个系统成员:
- 创建日期;创建对象的日期和时间。
- 更改日期;上次更改对象的日期和时间。
- 所有者;创建对象的用户。
- 改变者;上次更改对象的用户。
默认情况下,此信息不存储在数据库中。这是因为对于很多对象,您实际上并不需要这些信息,并且 Modeler 不希望不必要地使您的数据库混乱。但是,您可以选择存储这些系统成员中的一个或多个,方法是在实体的属性中检查它们。像这样:
在此示例中,您将在 Soccer Squad 应用程序中存储创建特定球队的人员。
总结
通过实体的跨模块关联,可以让我们更好管理和维护我们的应用程序的模块。通过这几章节的学习,我们学习了数据模型的进阶。当然,为了让我们往更资深的方向发展,我们需要进一步来学习,在未来,我将进一步来探讨一下,数据模型的高阶能力。敬请期待!