powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно вести аудит операций в БД?
13 сообщений из 13, страница 1 из 1
Как правильно вести аудит операций в БД?
    #33514985
Макс-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо вести движением товарв по складам.

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

1) Есть у кого-нибудь ГРАМОТНЫЕ примеры построения такого аудита?
2) Что делать если пользователь ошибся? Как не выводить эту операцию в отчете?
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33515016
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понятно при чем тут аудит и/или что под этим термином понимает автор.
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33515135
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Грамотность - понятие неоднозначное. У нас подобное работает, нас устраивает.

2) Изменить состояние строки "Значение свойства товара", которую он создал, с "Актуальное" на "Ошибочное". Или просто не изменять с "Непроверенное" на "Актуальное" - это уж смотря когда наши ошибку...

Думаю, конкретного описания структур данных и алгоритма работы с ними на форуме не дадут. Не объектно-реляционный маппинг для решения задач нейросетевого прогнозирования, однако :) .
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33515412
Макс-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Серега
Аудит - здесь это протоколирование операций над товарами. Т.е. не аудит событий над записями в базе, а именно операций в приложении.


AlexTheRaven
2) Изменить состояние строки "Значение свойства товара", которую он создал, с "Актуальное" на "Ошибочное". Или просто не изменять с "Непроверенное" на "Актуальное" - это уж смотря когда наши ошибку...

Пожалуйста, можно поподробнее. Где менять значения строк в архиве или нет?
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33515633
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс-2005Аудит - здесь это протоколирование операций над товарами. Т.е. не аудит событий над записями в базе, а именно операций в приложении.

Ну дык и заведи таблицу операций, где будет фиксироваться кто, что, когда, откуда и куда. Это может быть и не одна таблица, а несколько, если операции могут быть более сложными. И когда "кладовщик проводит операцию" - это и должно означать, что он формирует запись в этой таблице(ах) и модифицирует связанные.
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33515641
Макс-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Повторюсь.

Что делать если пользователь ошибся? Как не выводить эту операцию в отчете?
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33515989
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс-2005Что делать если пользователь ошибся? Как не выводить эту операцию в отчете?
В отчете аудита? Я думаю надо выводить. А если пользователь ошибочно ввел документ а потом его удалил то он и так ни в какие отчеты не попадет.

Или я чего не понял?
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33516034
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по существу
Макс-2005В конце месяца надо выдать отчет о движении товаров по
складам.
Это к аудиту не имеет никакого отношения, выдача отчетов об остатках и движению по складам это функционал любой складской программы.

Можно скачать любую, есть десятки бесплатных, и посмотреть.
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33516122
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс-2005Что делать если пользователь ошибся? Как не выводить эту операцию в отчете?
Что значит ошибся? Ошибки разные бывают. Некоторые надо блокировать при вводе (например нельзя передавать несуществующий товар или нулевое количество), некоторые надо давать исправлять после обнаружения (например ошибка в количестве передачи - тут надо делать протоколируемую коррекцию дополнительной операцией(ями) ).
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33516128
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс-2005Где менять значения строк в архиве или нет?

Почитайте про подход EAV, модель Тенцера, её расширения. Возможно, решение придёт само.

Грубо говоря, есть таблицы:
1) Типы товаров
2) Свойства товаров (зависят от типа)
3) Товары
4) Значения свойств товаров
5) Пользователей
6) Состояний (у нас – в зависимости от таблицы, но это спорное решение)

В данном случае, интереснее всего (3) и (4)

Товары
----------------------------------------
ID товара
ID типа товара
ID товара, в который входит этот товар
ID состояния FK
Дата создания
ID создавшего пользователя FK

Значения свойств товаров
-----------------------------------------
ID значения свойства товара PK
ID товара FK
ID свойства товара FK
Значение
ID состояния FK
Дата создания
ID создавшего пользователя FK

Упрощённо, когда пользователь хочет изменить значение свойства товара – он добавляет новую строку. В новой строке значение поля «ID состояния» соответствует состоянию «Актуальное». При этом все предыдущие значения того же свойства для того же товара маркируются как «Устаревшее».

Поле «Значение» строки в таблице «Значения свойств товаров» может быть изменено только тем же пользователем и только в течение определённого времени (у нас 5 мин.), и только для того, чтобы не считать информацию от оперативной правки исторической и не хранить её.

Если пользователь видит, что он ошибся в значении по истечении 5 минут – он изменяет состояние добавленной строки на «Неактуальное», и состоянием «Актуальное» маркируется наиболее позднее по дате создания устаревшее значение.

В реальности всё сложнее, с проверкой и состоянием «Непроверенное». Но принцип тот же. Пользователь не видит, изменяет ли он поле «Значение» или добавляет новое значение, а старые объявляет неактуальными, и т.д.

В отчёте товарах выводятся только актуальные строки. В отчёте об ошибках операторов – только неактуальные строки значений свойств по товарам с датой создания позже, чем у актуальных.
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33516132
Макс-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Estets Макс-2005Что делать если пользователь ошибся? Как не выводить эту операцию в отчете?
В отчете аудита? Я думаю надо выводить. А если пользователь ошибочно ввел документ а потом его удалил то он и так ни в какие отчеты не попадет.

Или я чего не понял?


Как программа должна узнавать какие данные правильные, а какие ошибочные?
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33520228
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс-2005Как программа должна узнавать какие данные правильные, а какие ошибочные?
1) Формальная проверка корректности
2) Автоматическое подтверждение (напр., если на складе автоматич. система регистрации продукции на RFID или хотя бы штрих-кодах)
3) Подтверждение вручную (заведующим, проверяющим, милицией:) )
...
Рейтинг: 0 / 0
Как правильно вести аудит операций в БД?
    #33522552
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTheRaven1) Формальная проверка корректности
2) Автоматическое подтверждение (напр., если на складе автоматич. система регистрации продукции на RFID или хотя бы штрих-кодах)
3) Подтверждение вручную (заведующим, проверяющим, милицией:) )
Обычно используется 3-ий подход, для операций связанных с движением денег и мат. ценностей есть оператор, который вводит данные и авторизатор, который данные проверяет и подтверждает. Все подтвержденные данные считаются правильными.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно вести аудит операций в БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]