Moqui自定义应用程序的数据建模问题

时间:2016-04-25 06:41:17

标签: moqui

我们正在Moqui框架之上开发一个自定义项目管理应用程序。我们的要求是,我们需要通过电子邮件通知与项目相关的开发人员的任何票据更改。

目前,我们正在使用 WorkEffortParty 实体来存储与项目相关的所有各方,然后 PartyContactMech 实体来存储他们的电子邮件地址。在这里,我们需要每次迭代WorkEffortParty和PartyContactMech以获取我们每次都需要发送电子邮件以更改票证的所有电子邮件地址。

为了避免这些迭代,我们现在考虑提供在项目级别添加逗号分隔的电子邮件地址的功能。项目管理员可以添加关联方的电子邮件地址或邮件列表地址,以便为更改故障单发送电子邮件通知。

对于这个要求,我们研究了数据模型,但我们没有找到存储这些信息的正确位置。我们是否需要为此扩展任何实体,或者是否有任何最佳实践?此要求在任何项目管理应用程序中都非常有用。我们感谢您对此数据建模问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

最佳做法是使用现有的数据模型元素。具有标准化数据模型涉及更多查询数据的工作,但是在不改变数据结构的情况下更灵活地满足各种要求。

在这种情况下,使用联接查询,您可以根据项目的workEffortId在单个查询中获取电子邮件地址列表。如果你正在处理海量数据和消息量,那么解决方案比使源数据非规范化更好,但我怀疑是这样的......除非你每天处理超过数千个项目和数百万条消息的基本查询和迭代方法会很好。

如果您需要超越这一点,使用Moqui的最简单方法是使用DataDocument和DataFeed即时发送更新到ElasticSearch,然后将其用于高容量查询和过滤(具有任意复杂的过滤等要求)。

您的问题太开放无法直接回答,数据建模是一个复杂的主题,如果没有很好地理解上下文和预期用法,就没有好的答案。一般而言,最好从基于数十年经验的数据模型开始,并在大量生产系统中使用。 Mantle UDM就是这样一种模式。