Цитата: OlegON ➤ Да, в СМ существует несколько статусов у большинства объектов. В окончательно принятом документе, например, правки недопустимы.
Интересно, почему? Я предполагаю, это связано с тем, что происходит именно "проведение" документа, то есть при установке какого-либо статуса в другие таблицы базы сохраняется какая-то служебная информация. А изменения задним числом могут привести к некорректным ситуациям. Когда проектировался КупецЪ, по этой причине и была принята концепция отказа от проведения документа в пользу расчетов на лету. Если надо что-то поменять в старом документе, то просто открываем и меняем. Ничего не откатывая и не пересчитывая. Запрет на изменения выставляется по мере закрытия периодов. И правами доступа, конечно. Например, пользователям можно разрешить изменять только свои документы, или разрешить изменять документы в течении какого-то периода времени, запретить утверждать документы (утверждение - это некое подобие проведения, но без записи информации в служебные таблицы) и т.п.
Как мне видится, жесткий запрет изменений документов задним числом будет сильно ограничивать область применения программы. В оптовой торговле такое в наших условиях точно не взлетит. Финансовый учет тоже вряд-ли впишется, бухи вой поднимут и придется вести его в другом софте.
Цитата: OlegON ➤ Поэтапность проведения документов упрощает распределение прав доступа и само отражение бизнес-процесса на логику работы программы, добавляя ей гибкости и одновременно принуждая пользователей ходить строем во избежание хаоса. Например, кладовщик с "Черновика" может "Принять на складе", зафиксировав количество по накладной. Соответственно, в каких-то случаях можно откатить только до "Принято на складе", что не даст юзеру править количество (и по журналу будет ясно, что пользователь остатки не трогал).
При принятой идеологии, наверно так и есть. В Купце аналогично можно делать через установку статусов или заполнения каких-либо реквизитов документа.
Цитата: OlegON ➤ Аудит в Oracle - отдельная тема. Как настроишь, так и поедешь (можно почитать про такую прелесть, как FGA, например). Однако, штатный журнал подключений в несколько десятков Гб - обыденность. Нельзя забывать, что в Супермаге есть всякие сервисы, вроде почтового, которые генерируют большой объем информации... При сотне пользователей в центральном офисе сети магазинов с работающим почтовиком админ достаточно быстро разорит контору на ленту для бекапов журналов. Да, конечно, документ будет не целиком клонироваться в историю, но будет написано время, с какого хоста, что правил и т.п. Т.е. дело не в том, что это сделать нельзя... И есть отдельный аудит по объектам системы в самом Супермаге, т.е. можно посмотреть, что почтовик, например, прислал приходную накладную или на карточке выпилили штрихкод и поменяли цену или остатки. Большинству этого достаточно, часть других не готова платить за ресурсы, которые на аудит потребуются.
Я думаю, что логировать записи базы данных, которые не могут изменяться пользователями, смысла нет. В Купце есть журнал полученных электронных заказов, журнал обмена сообщениями с покупателями (запросы на подключение к системе электронных заказов с сайта, к примеру). Такое нет смысла накрывать аудитом.
Журналы лога растут быстро, быстрее основной базы. Поэтому при создании резервной копии базы данных у нас из оперативного журнала лога вся информация переливается в архивный журнал. А файл архивного журнала просто периодически переименовывается определенным способом, когда станет большим (в районе 1.5 ГБ). Программа же может делать сквозной поиск по всем частям журнала лога. То есть архивировать чрезмерный объем информации не требуется, старые части достаточно архивировать 1 раз. Ну и сам журнал лога построен на топспидовских таблицах, которые автоматически упаковываются (степень сжатия их архиваторами обычно в пределах 10%).