Изменяя что-то задним числом вы рискуете нарушить целостность проводок которые были после того, ведь ваше изменение могло повлиять на условия при которых последующие проводки не имели бы смысла
Я говорил про нарушение целостности итогового баланса. Вопрос же права пользователя вносить сумятицу в его собственную бухгалтерию это скорее вопрос дизайна системы.
Такие операции слишком накладны
Не буду спорить. Всё зависит от масштаба и процесса. Мы используем двойной учёт для управленческих операций и у нас вопрос внесения изменений в большей степени актуален, чем вопрос производительности.
На самом деле, на уровне БД создаётся одна запись в таблице транзакций: с полями: дата, сумма, счётДт, счётКт, описание. Для того чтобы получить баланс того или иного счёта нам надо просто отобрать все транзакции, где этот счёт фигурирует в Кт или Дт. Из проверок только проверить, что оба счёта указаны, ну и ряд бизнес-проверок (чтобы проводка имела смысл, чтобы не выпрыгивала из временного периода итд)
Такая подход позволяет вам в любой момент времени изменить как сумму, дату транзакции, так и сами счета между которыми осуществялется эта транзакция, без боязни, что вы нарушите целостность итогового баланса (т.е. что сальдо активных счетов всегда будет равно сальдо Пассивов)
Я говорил про нарушение целостности итогового баланса. Вопрос же права пользователя вносить сумятицу в его собственную бухгалтерию это скорее вопрос дизайна системы.
Не буду спорить. Всё зависит от масштаба и процесса. Мы используем двойной учёт для управленческих операций и у нас вопрос внесения изменений в большей степени актуален, чем вопрос производительности.
Такая подход позволяет вам в любой момент времени изменить как сумму, дату транзакции, так и сами счета между которыми осуществялется эта транзакция, без боязни, что вы нарушите целостность итогового баланса (т.е. что сальдо активных счетов всегда будет равно сальдо Пассивов)