-1

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

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

为了避免这些迭代,我们现在正在考虑提供在项目级别添加逗号分隔的电子邮件地址的功能。项目管理员可以添加相关方的电子邮件地址或邮件列表地址,他需要向其发送电子邮件通知以更改票证。

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

4

1 回答 1

0

最佳实践是使用可用的现有数据模型元素。拥有一个规范化的数据模型需要在查询数据方面做更多的工作,但在不改变数据结构的情况下也可以更灵活地满足各种需求。

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

如果您需要超越 Moqui 的最简单方法,则使用 DataDocument 和 DataFeed 将动态更新发送到 ElasticSearch,然后将其用于大量查询和过滤(具有任意复杂的过滤等要求)。

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

于 2016-04-26T15:17:36.373 回答