powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логическое удаление записей
25 сообщений из 81, страница 3 из 4
Логическое удаление записей
    #33636267
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вы отождествляете понятия "значение атрибута (свойство)" и "метаданные"?

Нет. Контекст - [2507333].
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636283
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Бизнес-требования это не алгоритм, а документ

Т. е. любая бумажка - основание для разделения данных на "обычные" и "версионные"? ;)))

Я бы на вопрос ответил таким образом: постоянными можно считать независимые (степень независимости можно обсуждать) данные, точность измерения (или область значений) которых заранее известна (либо известен алгоритм их получения) и единицы измерения - стандартны. Все остальные данные - увы - по своей природе версионны.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636363
Гость74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Страховое свидетельство (Пенсионного фонда) подлежит обмену в случаях:
Изменения фамилии, имени, отчества, ДАТЫ РОЖДЕНИЯ, МЕСТА РОЖДЕНИЯ или поля
застрахованного лица;
установления неточности или ошибочности содержащихся в нем сведений. (с)

Написано это на зеленой карточке, которая есть у каждого.
Причем если ошиблись в дате рождения при составлении свидетельства,
то это попадает под "установления неточности или ошибочности содержащихся
в нем сведений"
Осюда логически заключаем, что дату рождения поменять можно!
Убили веру в константы на корню! :-)))))))
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636370
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость74Страховое свидетельство (Пенсионного фонда) подлежит обмену в случаях:
Изменения фамилии, имени, отчества, ДАТЫ РОЖДЕНИЯ, МЕСТА РОЖДЕНИЯ или поля
застрахованного лица;
установления неточности или ошибочности содержащихся в нем сведений. (с)

Написано это на зеленой карточке, которая есть у каждого.
Причем если ошиблись в дате рождения при составлении свидетельства,
то это попадает под "установления неточности или ошибочности содержащихся
в нем сведений"
Осюда логически заключаем, что дату рождения поменять можно!
Убили веру в константы на корню! :-)))))))

это потому, что такой важный вопрос как поддержание целостности и непротиворечивости данных отдали на откуп профанам и делетантам из МинЗдрава, конечно они такого нагородили...

даже ежу понятно и очевидно, что неточности при указании в даты рождения должны устраняться ТОЛЬКО СТОРНИРОВАНИЕМ

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

Т. е. любая бумажка - основание для разделения данных на "обычные" и "версионные"? ;)))

Я бы на вопрос ответил таким образом: постоянными можно считать независимые (степень независимости можно обсуждать) данные, точность измерения (или область значений) которых заранее известна (либо известен алгоритм их получения) и единицы измерения - стандартны. Все остальные данные - увы - по своей природе версионны.

Отвечать можно по разному. Бизнес-требования это не любая бумажка, это требования к информационной системе, предъявляемые заказчиком, либо сформированными на основе анализа функций проектируемой системы.

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

guest_20040621степень независимости можно обсуждать
Делается это на этапе анализа.

guest_20040621Все остальные данные - увы - по своей природе версионны
Это не значит, что в каждой системе нужно поддерживать версионность этих данных. Всё нужно в меру. Никому не нужной функциональностью, лишь можно навредить. В случае организации версионности, это дополнительные расходы для хранения информации, вычислительной мощности, обработки информации и поддержки реализуемого функционала.

p.s.
Эта любовь к алгоритмам неспроста...
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636399
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Вы отождествляете понятия "значение атрибута (свойство)" и "метаданные"?

Нет. Контекст - [2507333].
Это часть контекста. Как и более свежие цитаты, приведенные мной. Впрочем, и в указанном контексте я что-то не заметил упоминаний о метаданных, зато есть фразы:

Версионность - возможность видеть объект (запись, группу записей) на момент времени отличный от текущего,

К примеру, к таким объектам как документы (меняют свой статус в бизнес-процессе),

Таблица с версионными данными имеет поле с датой актуальности этих данных.
Для версионного объекта, версия создается в момент сохранения (нового, редактируемого) объекта.


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

Ключевое слово "объект".
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636449
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Бизнес-требования это не любая бумажка

Знаете, т. н. "бизнес-требования" - тупой термин, придуманный тупыми маркетологами, который в общем случае не несет никакой смысловой нагрузки. Делит пальму первенства по тупости с термином "бизнес-логика".

> требования к информационной системе, предъявляемые заказчиком

Вы сами вспомните, как называется этот документ? ;) Ни при чем здесь никакие "бизнес-требования".

> либо сформированными на основе анализа функций проектируемой системы.

;)))

> В разных проектах, системах один и тот же объект (сущность)

Дружище, термин "объект" в общем случае не имеет ничего общего с термином "сущность". Вы о чем говорите и что имеете в виду?

> В случае организации версионности, это дополнительные расходы

Очень незначительные. В любом смысле.

> Эта любовь к алгоритмам неспроста

Нет никакой любви. Если беретесь что-то формулировать, делайте это нормальным образом. Если оперируете определениями - ссылайтесь на источник.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636454
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nnovПока запись актуальна Date_End = '01.01.2099:00:00:00'
запись актуальна если нет замещающей ее записи. Иначе при вводе новой записи требуется дополнительная логика по замене данных в записях, которые становятся неактуальными. А при отмене - откат назад, восстановление предыдущего состояния. Хорошо когда это одна запись... и нечем заняться... Так и рождаются монстры с гемморойной логикой.
Типичный пример курсы валют:
Код: plaintext
1.
select top  1  ratevalue from currencyrates where rdate <= @date and curid = @cur
order by rdate desc
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636456
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Ключевое слово "объект".
После которого в скобках указано, что именно понимается под "объектом".
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636459
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmзапись актуальна если нет замещающей ее записи.
Нельзя ли описать, какую именно "замещающую ее запись" Вы бы внесли в реестр недвижимости Нью-Йорка 11 сентября небезызвестного года?
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636466
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer iscrafmзапись актуальна если нет замещающей ее записи.
Нельзя ли описать, какую именно "замещающую ее запись" Вы бы внесли в реестр недвижимости Нью-Йорка 11 сентября небезызвестного года?
в данном контексте
Код: plaintext
1.
2.
update restitems 
set status = -  1 
where city = 'NY' and recode = 'WTC'
:(
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636469
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только к замещающим записям это не имеет отношение.
Если бы WTC переехал, тогда запись бы была другой
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636472
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> После которого в скобках указано, что именно понимается под "объектом".

Спасибо, я умею читать; все сказанное в силе.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636480
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmНельзя ли описать, какую именно "замещающую ее запись" Вы бы внесли в реестр недвижимости Нью-Йорка 11 сентября небезызвестного года?
в данном контексте
Код: plaintext
1.
2.
update restitems 
set status = -  1 
where city = 'NY' and recode = 'WTC'
:([/quot]
Стоп-стоп-стоп. Прежде всего, я что-то не вижу здесь внесения замещающей записи - следовательно, "актуальная запись" продолжает существовать. Зато я вижу здесь факт "неверсионного изменения" - нигде не указано, что статус сменился именно 11.09. Практически Вы потеряли информацию.

iscrafmтолько к замещающим записям это не имеет отношение.
Хм. Тут уже вопросы к Вашей формулировке. Вы сказали, "запись перестает быть актуальной..." Я привел пример события, при котором запись явно перестала быть актуальной. Если эта ситуация решается другим способом - значит, Ваша формулировка неполна.

В целом, Ваш подход безусловно заслуживает большой медали Общества Любителей Нормализованных БД. Но на практике он имеет и свойственные нормализации недостатки; например, любой запрос, в котором требуется вывести период действия значения, без аналитических функций нормально не расписывается (собственно, в ANSI SQL, если не ошибаюсь, такой запрос вообще НЕ УДАСТСЯ написать).
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636489
PridobreY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Бизнес-требования это не любая бумажка

Знаете, т. н. "бизнес-требования" - тупой термин, придуманный тупыми маркетологами, который в общем случае не несет никакой смысловой нагрузки. Делит пальму первенства по тупости с термином "бизнес-логика".

одни буквы...

guest_20040621> требования к информационной системе, предъявляемые заказчиком

Вы сами вспомните, как называется этот документ? ;) Ни при чем здесь никакие "бизнес-требования".

> либо сформированными на основе анализа функций проектируемой системы.

;)))

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

guest_20040621> В разных проектах, системах один и тот же объект (сущность)

Дружище, термин "объект" в общем случае не имеет ничего общего с термином "сущность". Вы о чем говорите и что имеете в виду?
И какие это такие, общие случаи?
Тот кто хотел, понял что я имел ввиду. В скобках уточнение..

guest_20040621> В случае организации версионности, это дополнительные расходы

Очень незначительные. В любом смысле.
Это Вы заказчику пропойте. :)
А как эксплуатация начнется, послушайте их.

guest_20040621> Эта любовь к алгоритмам неспроста

Нет никакой любви. Если беретесь что-то формулировать, делайте это нормальным образом. Если оперируете определениями - ссылайтесь на источник.
Зачем кудато ссылаться, если сказано что под термином имеется ввиду.

p.s.
Кроме Ваших, необоснованных реплик, по существу темы ничего и не слышно.
Конструктивней надо.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33636495
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Стоп-стоп-стоп. Прежде всего, я что-то не вижу здесь внесения замещающей записи - следовательно, "актуальная запись" продолжает существовать. Зато я вижу здесь факт "неверсионного изменения" - нигде не указано, что статус сменился именно 11.09. Практически Вы потеряли информацию.

ниже написал, что к замещающим записям это не имеет отношение. Впрочем Вы сами думаю увидели следующее сообщение. А насчет версионности :) Лень мне было дописывать еще set-ы, думал сами догадаетесь. Никакая информация конечно же не теряется.


softwarer
В целом, Ваш подход безусловно заслуживает большой медали Общества Любителей Нормализованных БД.

Спасибо за медаль А что такое нормализованная БД? Шутка.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33637278
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> И какие это такие, общие случаи?

Н-да... одно непонятно: почему Вы имеете наглость что-то кому-то объяснять. Дружище, на Вашем месте я бы молчал и слушал. Вы вообще что-нибудь о проектировании читали?

> Тот кто хотел, понял что я имел ввиду. В скобках уточнение.

;)) Чего уточнение? Термина "объект"? Не смешите мои тапочки.

> Зачем кудато ссылаться, если сказано что под термином имеется ввиду.

Дружище, Вы разговариваете набором букв, Вы это понимаете? "Объект" имеет вполне себе конкретный смысл, а вот "запись" - это Ваша отсебятина, которая вообще ничего общего с проектированием не имеет. Что с помощью чего Вы уточнили? Читайте больше, что-ли...

> по существу темы ничего и не слышно.

Очень даже слышно. Вы написали абсолютную хрень, я Вам рассказал, почему это так. Чего более конкретного Вы хотите?

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

Н-да... одно непонятно: почему Вы имеете наглость что-то кому-то объяснять. Дружище, на Вашем месте я бы молчал и слушал. Вы вообще что-нибудь о проектировании читали?

> Тот кто хотел, понял что я имел ввиду. В скобках уточнение.

;)) Чего уточнение? Термина "объект"? Не смешите мои тапочки.

> Зачем кудато ссылаться, если сказано что под термином имеется ввиду.

Дружище, Вы разговариваете набором букв, Вы это понимаете? "Объект" имеет вполне себе конкретный смысл, а вот "запись" - это Ваша отсебятина, которая вообще ничего общего с проектированием не имеет. Что с помощью чего Вы уточнили? Читайте больше, что-ли...

> по существу темы ничего и не слышно.

Очень даже слышно. Вы написали абсолютную хрень, я Вам рассказал, почему это так. Чего более конкретного Вы хотите?

Учитесь, молодой человек; не пишите ахинеи; не давайте глупых советов.

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

Тем более должно быть стыдно.

> Если Вам не нравится терминология

Мне, уважаемый, терминология нравится. Не нравится, когда вместо стандартной используют доморощенную.

> предложите совю правильную модераторам

Консультации, чтение вслух стандартов, - на возмездной основе.

> И не забудьте про "тупых" маркетологов.

А что с ними не так?

P.S. Про не-дружищ оригинален был товарищ Выбегалло. Жаль, давненько его не слышно. ;) Амвросий Амбруазович, хватит дуться. ;)
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33638807
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и зачем так сложно когда делается это просто
Код: plaintext
select ratevalue from currencyrates where beginrdate <= @date and @date < endrdate curid = @cur

iscrafm nnovПока запись актуальна Date_End = '01.01.2099:00:00:00'
запись актуальна если нет замещающей ее записи. Иначе при вводе новой записи требуется дополнительная логика по замене данных в записях, которые становятся неактуальными. А при отмене - откат назад, восстановление предыдущего состояния. Хорошо когда это одна запись... и нечем заняться... Так и рождаются монстры с гемморойной логикой.
Типичный пример курсы валют:
Код: plaintext
1.
select top  1  ratevalue from currencyrates where rdate <= @date and curid = @cur
order by rdate desc
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33638809
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
затем, что не нужно делать никаких изменений кроме добавления новой записи. Попробуйте :) Проверено.
Алгоритмы должны быть просты и прозрачны. Дата окончания действия курса - лишнее.
p.s. Каждый день надеюсь не будете менять "< endrdate ".
Успехов!
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33638817
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжении темы.
Проектировать БД можно по правилам, можно без правил, а можно "под потребности".
Задавал вопрос уважаемый softwarer : " например, любой запрос, в котором требуется вывести период действия значения, без аналитических функций нормально не расписывается ". Ответ на него прост. Нужно смотреть на назначение БД. Приведенный выше вопрос можно поставить по другому. А зачем мне такая аналитика нужна? Да, меня интересует конкрентный документ, но совсем не интересует с какого и по какое он действовал. Гораздо более востребованная информация - действовал ли документ в заданный период. А если нужно построить временные ряды, то ничто не мешает потратить немного времени и расчитать их при помощи процедуры, так как его востребованность гораздо ниже. А еще лучше показать все это в кубе или в графике.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33656875
Wireless
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наилучший вариант хранения данных - при помощи пары дат -
дата начала, дата окончания действия.

Если использовать только одну дату, то значительно повышается сложность извлечения данных на определенную дату.

Я после некоторого анализа когда проектировалась наша биллинговая система выбрал именно вариант с двумя датами. Причем было два типа версионных таблиц -
1. Содержащие большое количество атрибутов, которые редко относительно изменяются. В этом случае в таблицу просто добавляются dton,dtoff и соответствующим образом оформляются все запросы, обращающиеся к этой таблице.
2. Содержащие атрибуты, которые часто меняются. И, кроме того, нужно знать индививдуально какой атрибут с какой по какую дату имеет/имел такое значение. В этом случае в таблице храниться код_атрибута, датаот, датапо, значение, ну и может какие то еще атрибуты как то кто и когда изменял и пр.

Такой же подход встречал в некоторых других серьезных коммерческих продуктах.

В принципе, все версионные данные желательно хранить в таблицах второго типа - получается более универсальнее и правильнее. Но возникают например трудности на уровне описания ER-диаграм БД - они получаются очень непоказательными.

Подумывал над созданием некой надстройки в БД для хранения всех версионных (кстате, думаю правильней их называть историческими) данных - например, завести таблицу, содержащую
1. код категории (к какой таблице принадлежали бы эти данные, будь они оформлены неисторическими),
2. код подраздела (код атрибута),
3 и 4. дата от, дата по,
5. значение (может быть серия значений разных типов, или применение каких-либо объектно-ориентированных возможностей БД для хранения значений разных типов).
6. Поля описывающие кто,
7. и когда менял

Далее завести определенный уровень абстракции операций над историческими данными - добавление, удаление, изменение. В принципе, у меня уже есть определенные наработки, но сейчас ломать всю систему под это уже тяжело. Версионные данные в нашей системе хранятся в таблицах типа 1 и 2, как описано выше.

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

Думаю, в очень крупных информационных системах (1000 и больше сущностей) такой или похожий уровень абстракции должен быть сделан обязательно - трудности при проектировании (если правильно все сделать, они не такие уж и большие) потом с лихвой окупятся при эксплуатации и развитии системы.
...
Рейтинг: 0 / 0
Логическое удаление записей
    #33657645
sam11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Несколько примеров из Oracle E-Buisness Suite.

1. Использование дат.
Таблица, содержащая список пользователей. 2 поля start_date и end_date , допускающие NULL-евые значения. Значение NULL означает неограниченность интервала в соответсвующую сторону.
2. Использование логического и физического удаления.
Таблицы, хранящие информацию о формулах (производство). Заголовки формул -< Детали формул. В родительской таблице есть поле delete_mark принимающее значения 0 или 1. В детальной таблице записи удаляются физически без возможности восстановления.
3. Версионность объектов.
Таблица, содержащая местоположения (locations). При внесении изменений в данные, пользователю предлагается возможность сохранить изменения в эту же запись, либо создать новую версию записи (используется поле object_version_number )
В дополнение ко всему, все таблицы содержат 4 WHO-столбца creation_date , created_by , last_update_date , last_updated_by

P.S. Мое мнение, что все описанное в данной теме имеет право на существование и зависит от условия задачи.
With Best Regard. Sam.
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 3 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логическое удаление записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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