|
|
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
Кстати,по поводу таблички с дополнительными сведениями: у меня есть режим работы (фактически роль) "Разрешение работы с указанием причины". Суть вот в чем:иногда кто-то кого-то заменяет при уходе в отпуск,но ходить под чужим паролем неверно и всегда давать такую роль тоже не верно.На период отпуска человека новому дается вышеуказанный режим работы на необходимые объекты. При выполнении каких-либо действий система предупреждает человека об опасности его действий и спрашивает,готов ли он продолжить.Если готов,то просит ввести причину этих действий (обычный текст),который пишется в аналогичную табличку с доп.сведениями.Если потом работа проверяется и в причине удаления всех счетов контрагента причина пишется как "А пошли вы все в *?;№№№#$",то ему вламывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 13:53 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
nnovПока запись актуальна Date_End = '01.01.2099:00:00:00' Ага, а потом говрят про боязнь 2000 года (в вашем случае будет 2100 год), тогда уж лучше это поле NULL оставлять или ну хотя бы 2999 год ставить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 13:59 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
basАга, а потом говрят про боязнь 2000 года (в вашем случае будет 2100 год), тогда уж лучше это поле NULL оставлять или ну хотя бы 2999 год ставить... Хотел бы я писать программы, которые работали бы хотябы до 2099 года)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 14:20 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
bas Ага, а потом говрят про боязнь 2000 года (в вашем случае будет 2100 год), тогда уж лучше это поле NULL оставлять или ну хотя бы 2999 год ставить... А можно привести пример программы которая проработала хотя-бы 20 лет А вот NULL ни в коем случае нельзя, потому как все данные показываются с фильтром "текущая дата" > Date_Begin and "текущая дата" < Date_End ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 14:28 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
nnovА можно привести пример программы которая проработала хотя-бы 20 лет Сколько угодно и гораздо больше. Например, поставь Windows XP, загляни в каталог %WINDIR%\system32 и увидишь там файлик edlin.exe, в котором с 85-го года вряд ли поменялся хотя бы один байт. nnovА вот NULL ни в коем случае нельзя, Как раз NULL там и нужен. nnovпотому как все данные показываются с фильтром "текущая дата" > Date_Begin and "текущая дата" < Date_End То есть Вы предлагаете из-за кривого следствия сообразно уродовать причину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 15:41 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
softwarerСколько угодно и гораздо больше. Например, поставь Windows XP, загляни в каталог %WINDIR%\system32 и увидишь там файлик edlin.exe, в котором с 85-го года вряд ли поменялся хотя бы один байт. Самому то не смешно... softwarer Как раз NULL там и нужен. И зачем же он там, просветите, что вы получети при его использовании кроме гемороя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 16:03 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
nnovИ зачем же он там, просветите, что вы получети при его использовании кроме гемороя. Если коротко, то отсутствие геморроя. Например, легко и просто различаются открытые и закрытые периоды, код становится легко читаемым и не содержит магических констант. Главное же - код становится надежнее; я на практике чужого большого проекта, доставшегося мне на поддержку, убедился, что ошибки "обработки магических констант как обычных" гораздо чаще проходят сквозь тестирование и приводят к гораздо более неприятным последствиям, нежели отсутствие особой обработки null-а там, где она нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 17:25 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
softwarerЕсли коротко, то отсутствие геморроя. Например, легко и просто различаются открытые и закрытые периоды, код становится легко читаемым и не содержит магических констант. Главное же - код становится надежнее; я на практике чужого большого проекта, доставшегося мне на поддержку, убедился, что ошибки "обработки магических констант как обычных" гораздо чаще проходят сквозь тестирование и приводят к гораздо более неприятным последствиям, нежели отсутствие особой обработки null-а там, где она нужна. Про какие магические константы идет речь не понял, в поле проставляется дата-время, и в плане обработки это гораздо лучше, NULL вообще имеет много минусов, нельзя сравнивать и производить вычисления, неэффективная индексация (а внекоторых СУБД вообще низя). А в данном конкретном случае будет вообще двойная работа. При построеной мною схеме, я всегда и везде подставляю одинаковое условие Date_Begin < DATETIME < Date_End причем по умолчанию подставляется текущее датавремя, а если нужно получить отчет на 10.07.2004 то просто указываем дату, и я не меняя никаких запросов процедур и т.д. в тойже логике получаю срез документов на указаную дату. Если бы стоял NULL нужно усложнять запросы при обращении к прошлым периодам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 17:38 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
Может будет интересно... Про даты и версии. Сначало о терминологии. Версионность - возможность видеть объект (запись, группу записей) на момент времени отличный от текущего, как правило, в прошедшем времени. Логирование - возможность видеть кем, когда и как объект был изменен (удален, добавлен). Теперь применительно к данным. Исходя из бизнес-требований и т.п. к нужным объектам применяем соответствующее решение. К примеру, к таким объектам как документы (меняют свой статус в бизнес-процессе), информация о юр.,физ. лице, приминительна версионность. К объектам попроще, где версионность не нужна, но есть вероятность доступа к ним "кривых рук", а достоверность их важна, и порой трудно найти крайнего, применяется логирование. Возможно прменение и версионности и логирования к одному объекту. Немного о реализации. Есть таблица с основными данными, есть с версионными. Таблица с версионными данными имеет поле с датой актуальности этих данных. Для версионного объекта, версия создается в момент сохранения (нового, редактируемого) объекта. Для объекта, имеющего ссылку на версионный, реализация может быть сделана одним из двух способов, опять же, в зависимости от требований. Это 1 - выбор версии при сохранении объекта, либо 2 - выбор версии, при просмотре объекта. Как пример, версионный объект "Юр.лицо" в документе (ссылка на юр.лицо из документа). В первом случае, мы всегда будем видеть документ, таким-каким он был. Логирование, это лишь теневая таблица, в которой регистрируются все изменения, плюс информация о том, кто когда и откуда их сделал. Касаемо темы, про удаление. В зависимости от требований, реализуется соответствующим способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 15:37 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
> Есть таблица с основными данными, есть с версионными. Алгоритм разделения данных на основные и версионные - в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 16:06 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
Полностью согласен с PridobreY: у меня алгоритм чисто эмпирический-спрашиваю у пользователя,нужна ли им история для возможности отката или отчетности (за прошлые периоды),или только для битья по рукам. Пример: справочник видов ЦБ - за него бьют по рукам. Картотека клиентов-версионная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 16:22 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Есть таблица с основными данными, есть с версионными. Алгоритм разделения данных на основные и версионные - в студию. Это не алгоритм. Это проектирование. Простой пример. Контрагент. Основные - ПК (перв.ключ) Внутренний код Краткое наименование Версионные - ПК ПК_Осн. Дата актуальности Полное название Тип (ОАО, ЗАО,....) и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 16:23 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
> Это не алгоритм. Это проектирование. Уважаемый, Вы буквосочетаниями для какой цели изъясняетесь? Вопрос был абсолютно конкретный. > Простой пример Мне не примеры нужны (тем более примеры с ошибками), а алгоритм. На основании чего и как делается вывод об "обычности" данных и "версионности"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 17:30 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Это не алгоритм. Это проектирование. Уважаемый, Вы буквосочетаниями для какой цели изъясняетесь? Вопрос был абсолютно конкретный. > Простой пример Мне не примеры нужны (тем более примеры с ошибками), а алгоритм. На основании чего и как делается вывод об "обычности" данных и "версионности"? 1. Где в примерах ошибки? 2. Если Вас интересует алгоритм проектирования, пожалуйста. Если значение атрибута (свойство) объекта может изменяться с течением времени, и нужно на конкретную дату видеть его таким, каким оно было на эту дату, тогда версионный атрибут, если оно не изменяется, или его изменение не влияет на бизнесправила, тогда простой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 17:47 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
> Если значение атрибута (свойство) объекта может изменяться > с течением времени А теперь расскажите, какие атрибуты не могут изменяться с течением времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:03 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Если значение атрибута (свойство) объекта может изменяться > с течением времени А теперь расскажите, какие атрибуты не могут изменяться с течением времени. ЕГРН например... да мало ли... дата регистрации, дата рождения... и, уж наверняка, дата смерти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:10 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Если значение атрибута (свойство) объекта может изменяться > с течением времени А теперь расскажите, какие атрибуты не могут изменяться с течением времени. Уважаемый guest_20040621, не нужно выдергивать фразу из предложения, и задавать по ней вопрос. Если Вас что-то по данной теме интересует, формулируйте вопрос конкретней, а не разводите полемику. p.s. с течением времени, не может изменитсья, к примеру, дата рождения (исключая ошибочный ввод) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:19 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
> Если Вас что-то по данной теме интересует Дружище, сильно вряд ли Вы скажете что-то такое, чего я бы не знал. > формулируйте вопрос конкретней Некуда конкретней. > а не разводите полемику Т. е. Вам ахинею нести можно, а мне вопросы задавать нельзя? > с течением времени, не может изменитсья, к примеру, дата рождения > (исключая ошибочный ввод) Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды. Еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:33 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды. И каким именно образом это сделает эти данные версионными? Ну и заодно любопытно было бы посмотреть на машину времени, которая определит эти данные например для меня :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:42 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621Дружище, сильно вряд ли Вы скажете что-то такое, чего я бы не знал. От чего такая уверенность? guest_20040621Т. е. Вам ахинею нести можно, а мне вопросы задавать нельзя? И где я нес ахинею? Хотя Вам никто не запрещает... guest_20040621Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды. Еще варианты? Читайте выше "Исходя из бизнес-требований..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:44 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
softwarer guest_20040621Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды. И каким именно образом это сделает эти данные версионными? Ну и заодно любопытно было бы посмотреть на машину времени, которая определит эти данные например для меня :) А вдруг изобретут! И будут разные релизы этой машины, и надо будет править дату, после каждого релиза, и хранить эту историю :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:47 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
> И каким именно образом это сделает эти данные версионными? Никаким, естественно. В данном случае меняться будут не данные, а метаданные. В контексте вопроса - версионность будет у метаданных, а не у данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:47 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
> Читайте выше "Исходя из бизнес-требований..." Что это за алгоритм "бизнес-требование"? Своими словами, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:49 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
PridobreYА вдруг изобретут! И будут разные релизы этой машины, и надо будет править дату, после каждого релиза, и хранить эту историю :) ) Это уже другая сущность. Не атрибут "дата рождения" в сущности "человек", а атрибут "измеренная дата" в сущности "результаты экспериментов по измерению дат рождения". guest_20040621> И каким именно образом это сделает эти данные версионными? Никаким, естественно. В данном случае меняться будут не данные, а метаданные. В контексте вопроса - версионность будет у метаданных, а не у данных. OK, давайте посмотрим контекст вопроса. guest_20040621 > Если значение атрибута (свойство) объекта может изменяться > с течением времени А теперь расскажите, какие атрибуты не могут изменяться с течением времени. Итак, судя по всему, Вы отождествляете понятия "значение атрибута (свойство)" и "метаданные"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:51 |
|
||
|
Логическое удаление записей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Читайте выше "Исходя из бизнес-требований..." Что это за алгоритм "бизнес-требование"? Своими словами, пожалуйста. Бизнес-требования это не алгоритм, а документ, который содержит информацию (требования к бизнес-процессам в частности.), используемую при проектировании информационной системы. softwarerЭто уже другая сущность. Не атрибут "дата рождения" в сущности "человек", а атрибут "измеренная дата" в сущности "результаты экспериментов по измерению дат рождения". Согласен. В моем случае, должна быть версионной сущность "человек", с версионным атрибутом "точная дата рождения". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 20:06 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33632468&tid=1545242]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 499ms |

| 0 / 0 |
