首页 > 解决方案 > 资源依赖于另一个的架构问题

问题描述

我目前正在使用 node.js 堆栈构建应用程序,但遇到了问题。

假设我正在构建一个银行应用程序。

我有称为用户的模型,然后是业务、帐户和转移。

用户代表登录信息和电子邮件。

如果用户不是业务客户,则用户将只有 User 表及其称为“个人”的子表。

业务代表任何基于组织的客户。这有称为 Corporation、NGO 的子表。

这是因为每个实体所需的文件都是唯一的。

我有一种称为 Account 表的中间层,它同时引用组织和用户,因为所有客户都应该有其唯一的实体。

因此,每次客户进行转账时,转账都会从 Account 表中取出。(转帐表将有帐户 ID)。

问题是,APP UI 基本上只有 2 个页面。一个是“客户”,另一个是“转让”。

问题是客户 UI 填充来自用户、组织、帐户的信息。转移 UI 填充来自用户、组织、帐户、转移的信息。

这导致四个表之间不可避免的依赖关系,创建意大利面条代码。

我解决这个问题的方法是创建某种虚拟层(源代码),创建客户服务和转移任务服务。

这些层没有自己的表(或模型),但有点像将不同模型合并为一个的界面。

为了说明这个模型,请看下面。

User
Transfer.      <------     Customer        <------  Controller 
Organization.              Transfer Tasks 
Account 

我意识到这个模型的问题是,这不仅违反了“restful” API 的规则,而且随着应用程序的增长,复杂性水平呈指数级增长。例如,如果有另一个名为 Organization 的 UI 级别组件仅填充来自组织表本身的数据怎么办?

然后控制器不仅调用它的第一层,客户或任务,还调用位于第二层的组织服务。

我的问题是,你认为我在这里有什么替代解决方案吗?

请指教。

标签: node.jsapirestwebbackend

解决方案


推荐阅读