Архитектурная проблема с ресурсами, зависящими от другого

#node.js #api #rest #web #backend

Вопрос:

В настоящее время я создаю приложение с помощью node.js стек, и я столкнулся с проблемой.

Допустим, я создаю банковское приложение.

У меня есть модели под названием «пользователь», затем «бизнес», «учетная запись» и «перевод».

Пользователь представляет информацию для входа и электронную почту.

Если пользователь не является бизнес-клиентом, то у пользователя будет только таблица пользователей и ее дочерняя таблица, называемая «индивидуальная».

Бизнес представляет любого клиента, основанного на организации. Это имеет дочерние таблицы, называемые корпорацией, НПО.

Это связано с тем, что документы, необходимые для каждой организации, уникальны.

У меня есть своего рода средний уровень, называемый таблицей учетных записей, который ссылается как на организацию, так и на пользователя, поскольку у каждого клиента должна быть своя уникальная сущность.

Поэтому каждый раз, когда клиент совершает перевод, перевод списывается со счета. (В таблице переводов будет указан идентификатор учетной записи).

Проблема в том, что пользовательский интерфейс приложения состоит в основном из 2 страниц. Одно из них — «Клиент», другое — «Перевод».

Проблема в том, что пользовательский интерфейс клиента заполняет информацию о пользователе, Организации, учетной записи. Пользовательский интерфейс передачи заполняет информацию от пользователя, Организации, учетной записи, Перевода.

Это приводит к неизбежной зависимости между четырьмя таблицами, создавая код спагетти.

Мой подход к этой проблеме состоял в том, чтобы создать своего рода виртуальный уровень (исходный код), создать Службу поддержки клиентов и службу передачи задач.

Эти слои не имеют собственной таблицы(или моделей), но своего рода интерфейс, который объединяет различные модели в одну.

Чтобы проиллюстрировать эту модель, пожалуйста, посмотрите ниже.

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

Проблема, которую я понимаю в этой модели, заключается не только в том, что это нарушает правило «restful» API, но и в том, что по мере роста приложения уровень сложности растет экспоненциально. Например, что, если существует другой компонент уровня пользовательского интерфейса под названием Организация, который заполняет данные только из самой организационной таблицы?

Затем Контроллер вызывает не только свой 1-й уровень, Клиента или задачи, но и службу Организации, которая находится на 2-м уровне.

Мой вопрос в том, как вы думаете, есть ли альтернативное решение тому, что у меня здесь есть?

Пожалуйста, посоветуйте.