Архитектура Django с интерактивными моделями - PullRequest
0 голосов
/ 03 декабря 2011

Я пытаюсь разработать веб-приложение для хранения книг на основе Django. Я пытаюсь использовать систему учета двойной записи, поэтому мои модели:

  • Счет
    • имя
    • date_created
    • владелец
    • opening_balance
    • reconciled_balance
  • FullTransaction
    • дата
    • памятка
    • check_no
  • HalfTransaction
    • ForeignKey (FullTransaction)
    • сумма
    • debit_flag
    • current_balance
    • reconciled_flag

Мой вопрос состоит из нескольких частей: Откуда бизнес-логика, которая сохраняет FullTransaction и HalfTransaction, так как FullTransaction и HalfTransaction должны быть сохранены атомарно (или архитектура должна отличаться?). В учебнике по django нет большой бизнес-логики для решения подобных проблем, и я не уверен, что переопределение метода save для сохранения других объектов является правильным.

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

1 Ответ

0 голосов
/ 03 декабря 2011

Куда относится бизнес-логика, которая сохраняет FullTransaction и HalfTransaction?

В приложении.

Полные транзакции и HalfTransaction должны быть сохранены атомарно (должна ли архитектура отличаться?).

Это вопрос?

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

Это зависит от требований к производительности.

Для скорости важны предварительно агрегированные данные.

Для простоты атомарные данныеэто важно.В этом случае вы должны пересчитать агрегаты.

Поскольку вы не предоставили информацию о производительности, невозможно определить, подходит ли она или неуместна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...