|
|
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Необходимо вести движением товарв по складам. Скажем кладовщик проводит операцию передачи товара на другой склад. Сразу же в таблицу аудита пишется информация о проведенной операции. В конце месяца надо выдать отчет о движении товаров по складам. 1) Есть у кого-нибудь ГРАМОТНЫЕ примеры построения такого аудита? 2) Что делать если пользователь ошибся? Как не выводить эту операцию в отчете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 09:21 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Не очень понятно при чем тут аудит и/или что под этим термином понимает автор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 09:38 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
1) Грамотность - понятие неоднозначное. У нас подобное работает, нас устраивает. 2) Изменить состояние строки "Значение свойства товара", которую он создал, с "Актуальное" на "Ошибочное". Или просто не изменять с "Непроверенное" на "Актуальное" - это уж смотря когда наши ошибку... Думаю, конкретного описания структур данных и алгоритма работы с ними на форуме не дадут. Не объектно-реляционный маппинг для решения задач нейросетевого прогнозирования, однако :) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 10:26 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Серега Аудит - здесь это протоколирование операций над товарами. Т.е. не аудит событий над записями в базе, а именно операций в приложении. AlexTheRaven 2) Изменить состояние строки "Значение свойства товара", которую он создал, с "Актуальное" на "Ошибочное". Или просто не изменять с "Непроверенное" на "Актуальное" - это уж смотря когда наши ошибку... Пожалуйста, можно поподробнее. Где менять значения строк в архиве или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 11:33 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Макс-2005Аудит - здесь это протоколирование операций над товарами. Т.е. не аудит событий над записями в базе, а именно операций в приложении. Ну дык и заведи таблицу операций, где будет фиксироваться кто, что, когда, откуда и куда. Это может быть и не одна таблица, а несколько, если операции могут быть более сложными. И когда "кладовщик проводит операцию" - это и должно означать, что он формирует запись в этой таблице(ах) и модифицирует связанные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 12:38 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Повторюсь. Что делать если пользователь ошибся? Как не выводить эту операцию в отчете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 12:41 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Макс-2005Что делать если пользователь ошибся? Как не выводить эту операцию в отчете? В отчете аудита? Я думаю надо выводить. А если пользователь ошибочно ввел документ а потом его удалил то он и так ни в какие отчеты не попадет. Или я чего не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 13:56 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
А по существу Макс-2005В конце месяца надо выдать отчет о движении товаров по складам. Это к аудиту не имеет никакого отношения, выдача отчетов об остатках и движению по складам это функционал любой складской программы. Можно скачать любую, есть десятки бесплатных, и посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 14:05 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Макс-2005Что делать если пользователь ошибся? Как не выводить эту операцию в отчете? Что значит ошибся? Ошибки разные бывают. Некоторые надо блокировать при вводе (например нельзя передавать несуществующий товар или нулевое количество), некоторые надо давать исправлять после обнаружения (например ошибка в количестве передачи - тут надо делать протоколируемую коррекцию дополнительной операцией(ями) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 14:21 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Макс-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 минут – он изменяет состояние добавленной строки на «Неактуальное», и состоянием «Актуальное» маркируется наиболее позднее по дате создания устаревшее значение. В реальности всё сложнее, с проверкой и состоянием «Непроверенное». Но принцип тот же. Пользователь не видит, изменяет ли он поле «Значение» или добавляет новое значение, а старые объявляет неактуальными, и т.д. В отчёте товарах выводятся только актуальные строки. В отчёте об ошибках операторов – только неактуальные строки значений свойств по товарам с датой создания позже, чем у актуальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 14:22 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Estets Макс-2005Что делать если пользователь ошибся? Как не выводить эту операцию в отчете? В отчете аудита? Я думаю надо выводить. А если пользователь ошибочно ввел документ а потом его удалил то он и так ни в какие отчеты не попадет. Или я чего не понял? Как программа должна узнавать какие данные правильные, а какие ошибочные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 14:22 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
Макс-2005Как программа должна узнавать какие данные правильные, а какие ошибочные? 1) Формальная проверка корректности 2) Автоматическое подтверждение (напр., если на складе автоматич. система регистрации продукции на RFID или хотя бы штрих-кодах) 3) Подтверждение вручную (заведующим, проверяющим, милицией:) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2006, 19:37 |
|
||
|
Как правильно вести аудит операций в БД?
|
|||
|---|---|---|---|
|
#18+
AlexTheRaven1) Формальная проверка корректности 2) Автоматическое подтверждение (напр., если на складе автоматич. система регистрации продукции на RFID или хотя бы штрих-кодах) 3) Подтверждение вручную (заведующим, проверяющим, милицией:) ) Обычно используется 3-ий подход, для операций связанных с движением денег и мат. ценностей есть оператор, который вводит данные и авторизатор, который данные проверяет и подтверждает. Все подтвержденные данные считаются правильными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 16:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33515633&tid=1545426]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
417ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 753ms |

| 0 / 0 |
