powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логическое удаление записей
25 сообщений из 81, страница 2 из 4
Логическое удаление записей
    #33632268
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати,по поводу таблички с дополнительными сведениями: у меня есть режим работы (фактически роль) "Разрешение работы с указанием причины". Суть вот в чем:иногда кто-то кого-то заменяет при уходе в отпуск,но ходить под чужим паролем неверно и всегда давать такую роль тоже не верно.На период отпуска человека новому дается вышеуказанный режим работы на необходимые объекты. При выполнении каких-либо действий система предупреждает человека об опасности его действий и спрашивает,готов ли он продолжить.Если готов,то просит ввести причину этих действий (обычный текст),который пишется в аналогичную табличку с доп.сведениями.Если потом работа проверяется и в причине удаления всех счетов контрагента причина пишется как "А пошли вы все в *?;№№№#$",то ему вламывают.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33632294
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nnovПока запись актуальна Date_End = '01.01.2099:00:00:00'

Ага, а потом говрят про боязнь 2000 года (в вашем случае будет 2100 год), тогда уж лучше это поле NULL оставлять или ну хотя бы 2999 год ставить...
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33632411
_spy_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basАга, а потом говрят про боязнь 2000 года (в вашем случае будет 2100 год), тогда уж лучше это поле NULL оставлять или ну хотя бы 2999 год ставить...
Хотел бы я писать программы, которые работали бы хотябы до 2099 года))
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33632468
nnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bas
Ага, а потом говрят про боязнь 2000 года (в вашем случае будет 2100 год), тогда уж лучше это поле NULL оставлять или ну хотя бы 2999 год ставить...
А можно привести пример программы которая проработала хотя-бы 20 лет
А вот NULL ни в коем случае нельзя, потому как все данные показываются с фильтром "текущая дата" > Date_Begin and "текущая дата" < Date_End
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33632833
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nnovА можно привести пример программы которая проработала хотя-бы 20 лет
Сколько угодно и гораздо больше. Например, поставь Windows XP, загляни в каталог %WINDIR%\system32 и увидишь там файлик edlin.exe, в котором с 85-го года вряд ли поменялся хотя бы один байт.

nnovА вот NULL ни в коем случае нельзя,
Как раз NULL там и нужен.

nnovпотому как все данные показываются с фильтром "текущая дата" > Date_Begin and "текущая дата" < Date_End
То есть Вы предлагаете из-за кривого следствия сообразно уродовать причину.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33632920
nnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerСколько угодно и гораздо больше. Например, поставь Windows XP, загляни в каталог %WINDIR%\system32 и увидишь там файлик edlin.exe, в котором с 85-го года вряд ли поменялся хотя бы один байт.

Самому то не смешно...

softwarer
Как раз NULL там и нужен.

И зачем же он там, просветите, что вы получети при его использовании кроме гемороя.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33633224
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nnovИ зачем же он там, просветите, что вы получети при его использовании кроме гемороя.
Если коротко, то отсутствие геморроя. Например, легко и просто различаются открытые и закрытые периоды, код становится легко читаемым и не содержит магических констант. Главное же - код становится надежнее; я на практике чужого большого проекта, доставшегося мне на поддержку, убедился, что ошибки "обработки магических констант как обычных" гораздо чаще проходят сквозь тестирование и приводят к гораздо более неприятным последствиям, нежели отсутствие особой обработки null-а там, где она нужна.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33633275
nnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЕсли коротко, то отсутствие геморроя. Например, легко и просто различаются открытые и закрытые периоды, код становится легко читаемым и не содержит магических констант. Главное же - код становится надежнее; я на практике чужого большого проекта, доставшегося мне на поддержку, убедился, что ошибки "обработки магических констант как обычных" гораздо чаще проходят сквозь тестирование и приводят к гораздо более неприятным последствиям, нежели отсутствие особой обработки null-а там, где она нужна.
Про какие магические константы идет речь не понял, в поле проставляется дата-время, и в плане обработки это гораздо лучше, NULL вообще имеет много минусов, нельзя сравнивать и производить вычисления, неэффективная индексация (а внекоторых СУБД вообще низя). А в данном конкретном случае будет вообще двойная работа. При построеной мною схеме, я всегда и везде подставляю одинаковое условие Date_Begin < DATETIME < Date_End причем по умолчанию подставляется текущее датавремя, а если нужно получить отчет на 10.07.2004 то просто указываем дату, и я не меняя никаких запросов процедур и т.д. в тойже логике получаю срез документов на указаную дату.
Если бы стоял NULL нужно усложнять запросы при обращении к прошлым периодам.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33635482
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может будет интересно...
Про даты и версии.
Сначало о терминологии.
Версионность - возможность видеть объект (запись, группу записей) на момент времени отличный от текущего,
как правило, в прошедшем времени.
Логирование - возможность видеть кем, когда и как объект был изменен (удален, добавлен).

Теперь применительно к данным.
Исходя из бизнес-требований и т.п. к нужным объектам применяем соответствующее решение.
К примеру, к таким объектам как документы (меняют свой статус в бизнес-процессе),
информация о юр.,физ. лице, приминительна версионность.
К объектам попроще, где версионность не нужна, но есть вероятность доступа к ним "кривых рук",
а достоверность их важна, и порой трудно найти крайнего, применяется логирование.
Возможно прменение и версионности и логирования к одному объекту.

Немного о реализации.
Есть таблица с основными данными, есть с версионными. Таблица с версионными данными имеет поле с датой
актуальности этих данных.
Для версионного объекта, версия создается в момент сохранения (нового, редактируемого) объекта.
Для объекта, имеющего ссылку на версионный, реализация может быть сделана одним из двух способов,
опять же, в зависимости от требований.
Это 1 - выбор версии при сохранении объекта,
либо 2 - выбор версии, при просмотре объекта.
Как пример, версионный объект "Юр.лицо" в документе (ссылка на юр.лицо из документа).
В первом случае, мы всегда будем видеть документ, таким-каким он был.
Логирование, это лишь теневая таблица, в которой регистрируются все изменения,
плюс информация о том, кто когда и откуда их сделал.

Касаемо темы, про удаление.
В зависимости от требований, реализуется соответствующим способом.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33635600
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Есть таблица с основными данными, есть с версионными.

Алгоритм разделения данных на основные и версионные - в студию.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33635659
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полностью согласен с PridobreY: у меня алгоритм чисто эмпирический-спрашиваю у пользователя,нужна ли им история для возможности отката или отчетности (за прошлые периоды),или только для битья по рукам.
Пример: справочник видов ЦБ - за него бьют по рукам. Картотека клиентов-версионная.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33635664
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Есть таблица с основными данными, есть с версионными.

Алгоритм разделения данных на основные и версионные - в студию.

Это не алгоритм. Это проектирование.

Простой пример. Контрагент.
Основные - ПК (перв.ключ)
Внутренний код
Краткое наименование
Версионные - ПК
ПК_Осн.
Дата актуальности
Полное название
Тип (ОАО, ЗАО,....)
и т.д.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33635896
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Это не алгоритм. Это проектирование.

Уважаемый, Вы буквосочетаниями для какой цели изъясняетесь? Вопрос был абсолютно конкретный.

> Простой пример

Мне не примеры нужны (тем более примеры с ошибками), а алгоритм. На основании чего и как делается вывод об "обычности" данных и "версионности"?
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33635956
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Это не алгоритм. Это проектирование.

Уважаемый, Вы буквосочетаниями для какой цели изъясняетесь? Вопрос был абсолютно конкретный.

> Простой пример

Мне не примеры нужны (тем более примеры с ошибками), а алгоритм. На основании чего и как делается вывод об "обычности" данных и "версионности"?

1. Где в примерах ошибки?
2. Если Вас интересует алгоритм проектирования, пожалуйста. Если значение атрибута (свойство) объекта может изменяться с течением времени, и нужно на конкретную дату видеть его таким, каким оно было на эту дату, тогда версионный атрибут, если оно не изменяется, или его изменение не влияет на бизнесправила, тогда простой.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636124
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Если значение атрибута (свойство) объекта может изменяться
> с течением времени

А теперь расскажите, какие атрибуты не могут изменяться с течением времени.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636136
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Если значение атрибута (свойство) объекта может изменяться
> с течением времени

А теперь расскажите, какие атрибуты не могут изменяться с течением времени.

ЕГРН например... да мало ли... дата регистрации, дата рождения...

и, уж наверняка, дата смерти...
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636159
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Если значение атрибута (свойство) объекта может изменяться
> с течением времени

А теперь расскажите, какие атрибуты не могут изменяться с течением времени.

Уважаемый guest_20040621, не нужно выдергивать фразу из предложения, и задавать по ней вопрос. Если Вас что-то по данной теме интересует, формулируйте вопрос конкретней, а не разводите полемику.

p.s.
с течением времени, не может изменитсья, к примеру, дата рождения (исключая ошибочный ввод)
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636200
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Если Вас что-то по данной теме интересует

Дружище, сильно вряд ли Вы скажете что-то такое, чего я бы не знал.

> формулируйте вопрос конкретней

Некуда конкретней.

> а не разводите полемику

Т. е. Вам ахинею нести можно, а мне вопросы задавать нельзя?

> с течением времени, не может изменитсья, к примеру, дата рождения
> (исключая ошибочный ввод)

Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды. Еще варианты?
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636217
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды.
И каким именно образом это сделает эти данные версионными? Ну и заодно любопытно было бы посмотреть на машину времени, которая определит эти данные например для меня :)
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636219
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Дружище, сильно вряд ли Вы скажете что-то такое, чего я бы не знал.
От чего такая уверенность?
guest_20040621Т. е. Вам ахинею нести можно, а мне вопросы задавать нельзя?
И где я нес ахинею? Хотя Вам никто не запрещает...
guest_20040621Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды. Еще варианты?
Читайте выше "Исходя из бизнес-требований..."
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636227
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer guest_20040621Неправда. Никто не может гарантировать, что через год не введут биометрические карты и дата рождения будет фиксироваться с точностью до минуты или секунды.
И каким именно образом это сделает эти данные версионными? Ну и заодно любопытно было бы посмотреть на машину времени, которая определит эти данные например для меня :)

А вдруг изобретут! И будут разные релизы этой машины, и надо будет править дату, после каждого релиза, и хранить эту историю :) )
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636228
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> И каким именно образом это сделает эти данные версионными?

Никаким, естественно. В данном случае меняться будут не данные, а метаданные. В контексте вопроса - версионность будет у метаданных, а не у данных.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636234
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Читайте выше "Исходя из бизнес-требований..."

Что это за алгоритм "бизнес-требование"? Своими словами, пожалуйста.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636237
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PridobreYА вдруг изобретут! И будут разные релизы этой машины, и надо будет править дату, после каждого релиза, и хранить эту историю :) )
Это уже другая сущность. Не атрибут "дата рождения" в сущности "человек", а атрибут "измеренная дата" в сущности "результаты экспериментов по измерению дат рождения".

guest_20040621> И каким именно образом это сделает эти данные версионными?

Никаким, естественно. В данном случае меняться будут не данные, а метаданные. В контексте вопроса - версионность будет у метаданных, а не у данных.

OK, давайте посмотрим контекст вопроса.

guest_20040621
> Если значение атрибута (свойство) объекта может изменяться
> с течением времени

А теперь расскажите, какие атрибуты не могут изменяться с течением времени.
Итак, судя по всему, Вы отождествляете понятия "значение атрибута (свойство)" и "метаданные"?
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636256
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Читайте выше "Исходя из бизнес-требований..."

Что это за алгоритм "бизнес-требование"? Своими словами, пожалуйста.
Бизнес-требования это не алгоритм, а документ, который содержит информацию (требования к бизнес-процессам в частности.), используемую при проектировании информационной системы.

softwarerЭто уже другая сущность. Не атрибут "дата рождения" в сущности "человек", а атрибут "измеренная дата" в сущности "результаты экспериментов по измерению дат рождения".
Согласен. В моем случае, должна быть версионной сущность "человек", с версионным атрибутом "точная дата рождения".
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 2 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логическое удаление записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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