2016-05-16 2 views
0

У вас есть 2 таблицы:Sequelize: Где должны находиться эти методы

  • Пользователи
  • Accounts

Пользователь может иметь несколько учетных записей.

Необходимо добавить учетную запись пользователю. Используя Sequelize, вы можете прикрепить метод экземпляра к модели пользователя под названием addAccount(). Но также, если вы посмотрите на него под другим углом, таблица Account действительно создает новую запись, поэтому модель Account может иметь метод класса, называемый createAccount().

Что более похоже на семантически? Или должно ли решение быть соединением между тем, где вы вызываете addAccount() в экземпляре пользователя, и этот метод вызывает метод класса createAccount() в модели Account?

И учитывая, что это приложение node/express, информация для создания учетной записи должна быть проверена, а затем проанализирована из запроса. Где бы вы сделали это подтверждение/синтаксический анализ? На маршрутах перед вызовом метода создания учетной записи? Или как «частная» функция (__parseReq) в методах класса либо модели пользователя, либо модели учетной записи?

ответ

0

Если бы я был на вашем месте, я бы предпочел использовать addAccount на экземпляре пользователя. Основная причина заключается в том, что при этом вы можете легко сказать, что вновь созданная учетная запись «принадлежит» рассматриваемому экземпляру пользователя.

В любом случае, если (по некоторым причинам) вам действительно нужно создать отдельную учетную запись без присутствия экземпляра пользователя, вы все равно можете использовать Account.create().

Для проверки значения вы можете выполнить проверку вручную перед выполнением операций secelize или определить свои правила проверки в определении модели (подробнее here).

Смежные вопросы