|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Под непротиворечивостью данных я имею ввиду не ссылочную целостность, а отсутствие в наборе данных явных внутренних противоречий как со здравым смыслом, например: Остаток товара ААА = -1; Поступление = 50, Отгрузка = 51, так и с действующими в конкретной компании правилами, например: «Клиентам категории VIP возможна отгрузка без предоплаты, остальным клиентам отгрузка без предоплаты в 30% не производится»; при этом в системе существует отгрузка без предоплаты для клиента, который не VIP Хотелось бы обсудить: - Насколько важно обеспечение такой непротиворечивости – стоит ли овчинка выделки - Если это важно, то каким образом она обеспечивается в практике различных внедренцев. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 12:29 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практикПод непротиворечивостью данных я имею ввиду не ссылочную целостность, а отсутствие в наборе данных явных внутренних противоречий как со здравым смыслом Это называется логической целостностью. Поищите. Много чего написано и на этом форуме и в других местах в рамках обсуждения целостности базы данных. Ответы: 1. Очень важно. 2. Технически - дописыванием проверки при записи (validate write). Технических сложностей в этом вопросе много. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 13:05 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Важно. Лучше всего достигается серверными процедурами постинга (учета, проведения). Это означает, что в базу можно записать все что угодно, но запись в регистры, по которым формируется отчетность производится пакетной процедурой, в теле которой и выполняются проверки на логическую целостность полученных в результате данных. Если целостность нарушается, учет отменяется и пакет записей возвращается на корректировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 13:13 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafmв базу можно записать все что угодно, но запись в регистры... Можно спросить в целях повышения образованности? Чем отличается запись в базу от записи в регистры? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 13:22 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Технических сложностей не замечено. Упрощенно, примерно так. Сначала делаете результирующие действия, потом проверяете целостность и если ее нет - отменяете транзакцию. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 13:25 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
mazzy iscrafmв базу можно записать все что угодно, но запись в регистры... Можно спросить в целях повышения образованности? Чем отличается запись в базу от записи в регистры? Можно конечно :) Как пример цепочка Entry-Jornal-Ledger, Вам знакомая. Строить отчеты по сохраненным документам гиблое дело. А запись в Ledger требует процедуры учета, в которой проверяется целостность. Не все данные сохраненные в БД являются актуальными и правильными... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 13:33 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafmТехнических сложностей не замечено. Упрощенно... А теперь напишите это для нескольких таблиц, которые обновляются в одной транзакции :) Например, должна ли проверка кредитного лимита учитывать проводимый в данный момент документ? А если должна, то как и когда? И т.п... iscrafm mazzy iscrafmв базу можно записать все что угодно, но запись в регистры... Можно спросить в целях повышения образованности? Чем отличается запись в базу от записи в регистры? Можно конечно :) Как пример цепочка Entry-Jornal-Ledger,... :) Разве это не таблицы? Почему вы хоите логически выделить термин регистры? Еще раз, Чем отличается запись в базу от записи в регистры? Вообще говоря, запись в базу данных и логическая целостность... Ладно, в сторону уходим... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 13:57 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
mazzy2. Технически - дописыванием проверки при записи (validate write). Технических сложностей в этом вопросе много. Возможных противоречий - просто миллион. И все описывать в SP? И даже если описать, то как потом это развивать? А если не описать, то у работающей системы с завидной регулярностью будут появляться всякие непредсказуемые баги. Есть ли вообще теория создания непротиворечивых наборов данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 14:21 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafmТехнических сложностей не замечено. Упрощенно, примерно так. Сначала делаете результирующие действия, потом проверяете целостность и если ее нет - отменяете транзакцию. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Ничего себе технических сложностей не замечено!! Попробуйте-ка таким способом предотвратить ВСЕ ВОЗМОЖНЫЕ противоречия в данных даже для некрупной компании. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 14:25 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
MazzyА теперь напишите это для нескольких таблиц, которые обновляются в одной транзакции Разве это принципиально что-то меняет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
mazzyНапример, должна ли проверка кредитного лимита учитывать проводимый в данный момент документ? А если должна, то как и когда? И т.п... Зависит от политики работы с клиентами. Встречалось и так и так. В любом случае проверяется процедурой учета. Как? Делается запись в карточку клиента, если кредитный лимит в результате записи получается превышенным - делается откат. Принцип работы известен по интернет-формам. Попробуйте в форме регистрации не заполнить обязательные поля и нажать Submit. Вернетесь назад и не сможете выполнить последующие действия. Проверка на клиенте мало что дает. mazzyРазве это не таблицы? Почему вы хоите логически выделить термин регистры? Конечно, это обычные таблицы. Отличие в том, что в них запрещена прямая запись, путем ввода данных через формы. Отчеты формируются на основании записей, сделанных в такие таблицы. Вся логика заложена в таких таблицах. Очень удобно расширять систему, подключая новые формы и дополнительные процедуры учета, не изменяя при этом отчетность и общую логику. Назвать можно как угодно, регистры - не принципиально. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 14:29 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
авторЕсть ли вообще теория создания непротиворечивых наборов данных?Вряд ли.. Точнее вряд ли существует к-л "особая теория", выходящая за рамки теории построения РСУБД. Вопрос (не)противоречивости решается в каждом случае индивидуально в т.ч. где распологать логику "на клиенте" или "на сервере". ТУТ НЕ СУЩЕСТВУЕТ ЗОЛОТОЙ СЕРЕДИНЫ. ВСЁ ОПРЕДЕЛЯЕТСЯ ЦЕЛЛЕСООБРАЗНОСТЬЮ ВЫПОЛНЕНИЯ той или иной проверки. Особенно если учесть, что кроме общей логики могут присутствовать "особые полномочия" некоторых пользователей (разрешать действие/учёт только при наличии набора прав). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 14:34 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практикПопробуйте-ка таким способом предотвратить ВСЕ ВОЗМОЖНЫЕ противоречия в данных даже для некрупной компании А Вы не пытайтесь устранить сразу все возможные противоречия. Разбейте систему до элементарных наборов данных и поработайте с каждым. Допустим, тот же журнал движения товара. Сколько наберете условий, для выполнения в него записи об отгрузке? Два известны: в результате не должно быть красных остатков, кредитный лимит не должен быть превышен. Цена не должна быть меньше установленной минимальной, нельзя "разрывать" упаковку, если для товара установлен флаг - продажа только упаковками, подобранный товар должен быть не просрочен и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 14:49 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm Отличие в том, что в них запрещена прямая запись, путем ввода данных через формы. 1 Минимальный слой кода лежит под кнопкой "Добавить"/"Обновить" всех известных лично мне многопользовательских учетных систем,поправьте указанием источников. 2 Может быть Вы имеете в виду двухфазный ввод через промежуточные(временные) таблицы ? Как при этом выглядит интерфейс со стороны оператора , т.е. кнопок 2 тест и ввод или одна с асинхронной отменой введеного ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 14:59 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практик mazzy2. Технически - дописыванием проверки при записи (validate write). Технических сложностей в этом вопросе много. Возможных противоречий - просто миллион. И все описывать в SP? И даже если описать, то как потом это развивать? А если не описать, то у работающей системы с завидной регулярностью будут появляться всякие непредсказуемые баги. Есть ли вообще теория создания непротиворечивых наборов данных? 1. про SP я ничего не говорил. давайте говорить о просто проверке. А уж в SP или не в SP - вопрос технический. Главное - при записи :) Причем обратите внимание, что не уточняется при записи чего. 2. Квантор ВСЕ - опасный квантор. Когда появляется слово ВСе - жди логической ошибки. 3. Насчет теории. Есть теория предикатов. На ее базе основаны базы знаний и экспертные системы. Теория занимается двумя вещами: 3.1. минимальный и ортогональный набор предикатов инвариантный вашему набору условий 3.2. работа с вашим набором, без преобразований к непротиворечивому набору... В общем, ищите теорию предикатов. Но а) эта тема выходит далеко за рамки темы данного форума б) скорее всего, ваш набор существенно проще. Скорее всего, вы просто не знаете вашу предметную область, если боитесь описать "ВСЕ противоречия". В бизнес-приложениях пока число проверок исчисляется десятками. Вовсе не сотнями и не тысячами. Подумайте о следующем: пока бизнесом управляют люди. И они держат эти проверки в памяти... Да, ошибаются. Да, периодически забывают. Но держат :) iscrafm об этом хорошо сказал. Вот если бы вы переходили с базы знаний на ERP... тогда да, в базе знаний проверок может быть ОЧЕНЬ много... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:00 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Shuhard1 Минимальный слой кода лежит под кнопкой "Добавить"/"Обновить" всех известных лично мне многопользовательских учетных систем,поправьте указанием источников. Вы забыли про Удалить :) Теоретически еще может быть Реплицировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:05 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
в дополнение mazzy мне случилось построить сложную очистку стат.отчетности на основе теории конечных автоматов , писал свой макропроцессор и язычок. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:06 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
mazzyВы забыли про Удалить :) т.е. сторнировать - забыл , виноват. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:11 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Shuhard1 Минимальный слой кода лежит под кнопкой "Добавить"/"Обновить" всех известных лично мне многопользовательских учетных систем,поправьте указанием источников. 2 Может быть Вы имеете в виду двухфазный ввод через промежуточные(временные) таблицы ? Как при этом выглядит интерфейс со стороны оператора , т.е. кнопок 2 тест и ввод или одна с асинхронной отменой введеного ? 1. У всех по разному Nav: Сохранение и учет - разные по сути веши. Учет вынесен на отдельную кнопку. Документ можно сохранить, учесть в любой момент. Ax: тот же постинг SBO: противоречивые данные нельзя даже сохранить. По кнопке Добавить сразу выполняется проверка. Т.е. пойти на перекур, предварительно не сохранив правильный документ нельзя, по крайней мере у меня не получилось. ISCRA: Примерно как в Navision, только кнопка меняет свое назначение с Учет на Отмена учета и обратно. Выполняется вызов назначенных процедур. Править учтенные записи так же, нельзя. 2. Не всегда. Когда это выгодно. Часто - изменение статуса и формирование связанной цепочки. Отмена - обратные действия. Про кнопки в п.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:33 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
p.s. Варианты: ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:41 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
LSVОсобенно если учесть, что кроме общей логики могут присутствовать "особые полномочия" некоторых пользователей (разрешать действие/учёт только при наличии набора прав). Не понял. Разные логики для разных пользователей? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 15:53 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm SBO: противоречивые данные нельзя даже сохранить. По кнопке Добавить сразу выполняется проверка. Т.е. пойти на перекур, предварительно не сохранив правильный документ нельзя, по крайней мере у меня не получилось. Черновик - любые данные , вплоть до дат вперед ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 16:10 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm 1. У всех по разному Nav: Сохранение и учет - разные по сути веши. Учет вынесен на отдельную кнопку. Документ можно сохранить, учесть в любой момент. Ax: тот же постинг ISCRA: Примерно как в Navision, только кнопка меняет свое назначение с Учет на Отмена учета и обратно. Выполняется вызов назначенных процедур. Править учтенные записи так же, нельзя. и в 1С8.0 отдельные галки для разных учетов, речь шла о прямом вводе в таблицы , во всех приведенных системах сидят обработчики ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 16:14 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практик LSVОсобенно если учесть, что кроме общей логики могут присутствовать "особые полномочия" некоторых пользователей (разрешать действие/учёт только при наличии набора прав). Не понял. Разные логики для разных пользователей? Нет, это просто логика такая :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 16:16 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
спасибо за подсказку ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 16:16 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm Разбейте систему до элементарных наборов данных и поработайте с каждым. Не окажется так, что не удастся выделить достаточно независимые наборы? Та же отгрузка товаров клиентам управляется правилами а)продаж б)логистики. А в правила логистики управляют и закупками и ... iscrafm в результате не должно быть красных остатков, кредитный лимит не должен быть превышен. Например: как может быть получен "красный" остаток? - Отгрузить количество больше, чем есть на остатке - Отгрузить количество меньше, чем есть на остатке, и поменять даты: а) приходной накладной, по которой пришел отгружаемый товар б) расходной накладной, по которой товар отгрузился так, чтобы "красный" остаток возник на некоторый диапазон дат. - Отгрузить задним числом такое количество, которое меньше остатка на прошлую дату, но которое приведет к "красному" остатку в последующие даты с учетом уже совершенных отгрузок. Пример. Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. Вводим: 03.01.2006 отгрузка 8 шт. Что каждый раз при вводе задним числом рассчитывать "разрешенное количество"? А если есть отгрузки введенные будущими датами, постоянно рассчитывать "разрешенное количество"? - Удалить (отменить, сторнировать) приходный документ - Поменять у приходного документа "склад поступления". - Поиграться с единицами измерения товара (не знаю как в разных системах, а в стандартном 1С Предприятии 7.7 точно можно, я пробовал) Уф.. Про кредитный лимит примерно то же самое. Запрещать редактировать вышеперечисленное (хотел написать ВСЕ, но вспомнил mazzy ;-)))? Системой становится тяжело пользоваться. mazzyВ бизнес-приложениях пока число проверок исчисляется десятками. Вовсе не сотнями и не тысячами. Без кредитного лимита, при рассмотрении исключительно отгрузки товара, уже набралось 7 точек контроля непротиворечивости. Причем каждая такая точка может контролировать далеко не только движения товара, чего только стоит контроль ввода/редактирования даты, склада ... Это мы пока не коснулись продаж в целом... маркетинга в целом ... закупок, финансов, персонала ... не говоря уже о производстве .... Вообще не вспоминали о планировании, где есть свои жесткие правила, в разных планах (или бюджетах) разные... Не вспоминали о справочниках, а в них также могут быть внесены противоречивые данные (не только единицы измерения у товара, например клиенту не назначен менеджер или назначен уволенный человек) Короче, мое мнение - только в продажах таких точек контроля сотни (это если делать по взрослому). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 16:52 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практикНапример: как может быть получен "красный" остаток? - Отгрузить количество больше, чем есть на остатке - Отгрузить количество меньше, чем есть на остатке, и поменять даты: а) приходной накладной, по которой пришел отгружаемый товар б) расходной накладной, по которой товар отгрузился так, чтобы "красный" остаток возник на некоторый диапазон дат. - Отгрузить задним числом такое количество, которое меньше остатка на прошлую дату, но которое приведет к "красному" остатку в последующие даты с учетом уже совершенных отгрузок. Пример. Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. Вводим: 03.01.2006 отгрузка 8 шт. Что каждый раз при вводе задним числом рассчитывать "разрешенное количество"? А если есть отгрузки введенные будущими датами, постоянно рассчитывать "разрешенное количество"? - Удалить (отменить, сторнировать) приходный документ - Поменять у приходного документа "склад поступления". - Поиграться с единицами измерения товара (не знаю как в разных системах, а в стандартном 1С Предприятии 7.7 точно можно, я пробовал) Учтенные документы не редактируются - это правило. Отмена учета тоже проверяет логическую целостность. Нельзя отменить Приход, если расход по нему уже расписан. Отмена такого прихода или запрещается или влечет за собой отмену всех связанных расходов. Зависит от логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 17:06 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практикЗапрещать редактировать вышеперечисленное (хотел написать ВСЕ, но вспомнил mazzy ;-)))? Системой становится тяжело пользоваться Запрещать не нужно, нужно проверять возможность редактирования ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 17:08 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
mazzy 1. про SP я ничего не говорил. давайте говорить о просто проверке. А уж в SP или не в SP - вопрос технический. Главное - при записи :) Причем обратите внимание, что не уточняется при записи чего. Ваша правда. mazzy2. Квантор ВСЕ - опасный квантор. Когда появляется слово ВСе - жди логической ошибки. Согласен, нужно было объяснить. Дело в том, что у каждого, кто работает с системой, использует систему, есть свое представление о логических противоречиях, которое постоянно изменяется и дополняется. Под словом ВСЕ я имел в виду некоторый формализованный набор логических связей, сформулированный на определенный момент времени. Другое дело, что создать такой набор, особенно согласованный с разными потребителями одной системы ... скажем так - очень долго. mazzyВ общем, ищите теорию предикатов. Спасибо, обязательно посмотрю. mazzyПодумайте о следующем: пока бизнесом управляют люди. И они держат эти проверки в памяти... Да, ошибаются. Да, периодически забывают. Но держат. Мне казалось, что покупатели приобретают софт как раз для того, чтобы некоторые "механические" действия софт делал за них. Это назвали автоматизацией. :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 17:09 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
статью дописываете ? http://www.imetrika.ru/archives/1/18/ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 17:31 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Shuhardстатью дописываете ? Давно написал. Просто дальше размышляю. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 18:02 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm Учтенные документы не редактируются - это правило. "Учтенные" - это "проведенные" в терминах 1С? А как быть, если в документе допущена ошибка? "бизнесом управляют люди ... да, ошибаются" (с) mazzy ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 18:09 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практик iscrafm Учтенные документы не редактируются - это правило. "Учтенные" - это "проведенные" в терминах 1С? А как быть, если в документе допущена ошибка? "бизнесом управляют люди ... да, ошибаются" (с) mazzy В терминах 1С - проведенные, точно. Если ошибка - 2 варианта: 1. Корректирующие записи 2. Отмена учета (с откатом произведенных учетом изменений), если возможно, правка и повторный учет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 18:35 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm Если ошибка - 2 варианта: 1. Корректирующие записи 2. Отмена учета (с откатом произведенных учетом изменений), если возможно, правка и повторный учет. И в том и в другом варианте не вижу препятствий для попадания в систему данных, противоречащих уже имеющимся. Получается, что вносить противоречивые данные нельзя, но если очень хочется, то можно, причем любые. С таким подходом активно работающей компании нужно подождать всего лишь месяц - дальше только удивляться и не забывать весь этот бардак оплачивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 18:55 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практик iscrafm Если ошибка - 2 варианта: 1. Корректирующие записи 2. Отмена учета (с откатом произведенных учетом изменений), если возможно, правка и повторный учет. И в том и в другом варианте не вижу препятствий для попадания в систему данных, противоречащих уже имеющимся. Получается, что вносить противоречивые данные нельзя, но если очень хочется, то можно, причем любые. С таким подходом активно работающей компании нужно подождать всего лишь месяц - дальше только удивляться и не забывать весь этот бардак оплачивать. В процедуре учета проверяются не вводимые данные , а состояние системы, которое будет после учета этих данных . Почувствуйте разницу :) Выполняется расчет "что если.." эти данные попадут в систему. Если возникают противоречия, то учет отменяется. Если все нормально - принимается. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 19:01 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Представьте, образно: у Вас есть счет расчетов с кредиторами и счет учета запасов. Так вот процедура учета делает проводки и смотрит получившееся в результате сальдо. Если оно отрицательное - делает откат. Таких регистров для контроля ес-но может быть много. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 19:05 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
p.s. Как в системе резервирования. Не запрашивается свободный остаток, а сразу расходуется. Если в результате расхода минус - отменяется. Все это в транзакции конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 19:08 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практикДругое дело, что создать такой набор, особенно согласованный с разными потребителями одной системы ... скажем так - очень долго. Вы все-таки попробуйте. Начните с более-менее формализованных вещей - возьмите список корреспонденций... Добавьте небухгалтерские условия для каждой встреченной корреспонденции. Попробуйте прорядить полученные условия (упростить и унифицировать). Вы будете приятно удивлены, с очень большой вероятностью. Глаза боятся - руки делают. :) Оффтопик... Помнится, лет 10 назад, когда мы делали Пролог-Д, то постоянно удивлялись к какому небольшому числу предикатов сводились очень сложные логические задачи... Тогда же были жаркие обсуждения экспертной системы для построения экспертных систем... В нее закладываешь кучу эмпирический условий и ограничений, а она на выходе дает минимальный и ортогональный набор предикатов... Попутно показывая противоречия и возможности для упрощения... Взять, например, наше законодательство... Эх, вот бы вернуться в то время... или сейчас иметь ресурсы, чтобы сделать систему с пресетами предикатов... Практик, решительно желаю вам удачи. Завидую, что вы можете заниматься этой задачей. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2006, 22:59 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
iscrafm Выполняется расчет "что если.." эти данные попадут в систему. Если возникают противоречия, то учет отменяется. Если все нормально - принимается. Если взять модернизированный пример "Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. в) 07.01.2006 приход 100 шт. Сегодня 09.01.2006. Вводим: 03.01.2006 отгрузка 8 шт.", то состояния склада на какую дату будет проверяться? На момент отгрузки 03.01.2006 остаток 2 шт На сегодня остаток 96 шт Отгрузка разрешена? Но в период с 05.01.2006 по 07.01.2006 остаток -4 шт. Далее как? Запретить ввод задним числом? Нереально. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2006, 09:39 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
mazzy Практик, решительно желаю вам удачи. Завидую, что вы можете заниматься этой задачей. Спасибо, mazzy. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2006, 09:40 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практик "Есть: а) 01.01.2006 приход 10 шт. б) 05.01.2006 отгрузка 6 шт. в) 07.01.2006 приход 100 шт. Сегодня 09.01.2006. Вводим: 03.01.2006 отгрузка 8 шт.", то состояния склада на какую дату будет проверяться? На момент отгрузки 03.01.2006 остаток 2 шт На сегодня остаток 96 шт Отгрузка разрешена? Но в период с 05.01.2006 по 07.01.2006 остаток -4 шт. Далее как? Запретить ввод задним числом? Нереально. Еще одна часто встречающаяся ситуация, опасная неопределенностью: в один и тот же день есть несколько приходов и расходов. В зависимости от их порядка, либо от порядка ввода оператором, либо от порядка вычислений в контролирующем модуле ситуация отрицательных остатков может возникать либо отсутствовать. И мы при вводе можем отказать в транзакции при отсутствии отрицательных остатков, и наоборот, ввести ошибочные данные. Это Вам, практик, еще одно усложнение. Похоже не в запретах дело, искать надо выход в других местах. Каких??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2006, 13:07 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Жёсткий запрет отпуска "в красное" делать категорически нельзя. Это связано со складскими ошибками при отпуске/приёмке (человечекий фактор). Эти ошибки всплывут спустя некоторое время когда их будет реально обнаружить, например уход "в красное" или длительная непродажа ходового товара (пересорт/недостача/зависалово). Этих ошибок нереально избежать. Можно только снизить их кол-во. Если отпускаемый товар после повторной проверки реально соответствует указанному в документе, то ЭТОТ ТОВАР НАДО ОТПУСТИТЬ вне зависимости, какие отстатки показывает система. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2006, 16:20 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
LSVЖёсткий запрет отпуска "в красное" делать категорически нельзя. Это связано со складскими ошибками при отпуске/приёмке (человечекий фактор). Эти ошибки всплывут спустя некоторое время когда их будет реально обнаружить, например уход "в красное" или длительная непродажа ходового товара (пересорт/недостача/зависалово). Этих ошибок нереально избежать. Можно только снизить их кол-во. Если отпускаемый товар после повторной проверки реально соответствует указанному в документе, то ЭТОТ ТОВАР НАДО ОТПУСТИТЬ вне зависимости, какие отстатки показывает система. Согласен, поддерживаю и применяю на практике. Допускаю отрицательные остатки с требованием проверки. Всегда после проверок ситуация проясняется. А чем и кого пугают отрицательные остатки, как сигнал наличия ошибки? Как правило ошибка не в последней транзакции, вот в чем суть. Почему поддерживаю? Потому что нет достойных механизмов контроля даже в простейшем случае отрицательных остатков. А на каждый выдуманный сколь угодно красивый алгоритм контроля найдется исключительная ситуация. Примеры в предыдущих сообщениях участников. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2006, 13:53 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Каким алгоритмом проверить следующее: оператор рассыпал пакладные, собрал их в произвольном порядке, ввел расходную и ушел курить. А приход за более раннюю дату остался на столе. Все алгоритмы сойдут с ума до его возвращения, а он может еще и кофе захочет:-). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2006, 13:59 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Если расход сильно связан с приходом (даже отложенным), то многие проблемы отпадают. Но возникают новые сложности (обходимые) - типа пересмотр цепочек. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2006, 17:06 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
Guest_12345Каким алгоритмом проверить следующее: оператор рассыпал пакладные, собрал их в произвольном порядке, ввел расходную и ушел курить. А приход за более раннюю дату остался на столе. Алгоритмом начисления зарплаты ;) А если серьезно - то как вот так просто разрешать отпуск в минус? Если товар есть, а по базе его нет это может означать как то, что его ОШИБОЧНО нет по базе, так и то, что он ОШИБОЧНО есть в наличии. И будет хуже, если вы его отдадите, а потом выяснится, что он уже был продан, просто его не забрали или еще что-то такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2006, 11:51 |
|
Непротиворечивость данных
|
|||
---|---|---|---|
#18+
практик, вообще терминология путаная то что вы назвали непротиворечивостью в другом руководстве классифицируется как один из видов целостности - ограничение атрибута Ограничением переменных отношения наз ограничения на зн, кот разреш приним указан перем отношения. Ограничением атрибута наз ограничение на значения, кот разрешено принимать указанному атрибуту. Ограничением типа - не что иное, как определение множества значений, из которых состоит данный тип. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 08:53 |
|
|
start [/forum/topic.php?all=1&fid=29&tid=1525727]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 233ms |
total: | 387ms |
0 / 0 |