Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логическое удаление / 6 сообщений из 6, страница 1 из 1
14.07.2006, 18:46
    #33855086
Igethim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическое удаление
Всем привет,

Хотелось бы уточнить следующее:

Имеется система в которой данные не могут удаляться в течении 5 лет.
Поэтому практически во всех таблицах в базе данных будет присутствовать битовое поле Active, который при значении 1 будут указывать на то, что запись якобы была удалена.

Теперь вопросы. Правильно ли будут следующие действия?:

1. Допустим компания торгует различными видами канц товаров. Однажды они перестают торговать ручками и запись "ручка" в таблице "Типы" логически удаляется. Но, после одного месяца компания вновь решает торговать данным видом. Для этого юзер вносить в базу тип "ручка". В этот момент программа находит данную запись в таблице и значение в поле Active приравнивает к 0 - то есть указывается что запись вотановлена (а не создана заново)

2. Допустим тип "ручка" вновь удаляется (поле Active = 1). Юзер решает тип товара "линейка" поменять на "ручка". В данном случае программа меняет поле Active записи "ручка" на 0 (активизируется), а поле Active записи "линейка"
на 1 (удаляется, закрывается)

Что скажете? Приемлемое решение или нет?
...
Рейтинг: 0 / 0
15.07.2006, 07:38
    #33855467
Igethim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическое удаление
Может не понятно что здесь имеется в виду?
...
Рейтинг: 0 / 0
15.07.2006, 08:03
    #33855471
LenaV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическое удаление
Такая логика построения базы данных собъет вам все отчеты.
Битовое поле Active должно существовать, чтобы указывать текущую или старую (удаленную) занись. Но старая запись не должна менятся на новую. Должна быть создана новая запись с Active равное 0. Также в каждой записе должны быть поля с датами когда "ручка" стала активной (т.е. создалась новая запись) и когда "ручка" удалилась (Active равное 1). Это облегчит вам создание отчетов и архивирование данных.
...
Рейтинг: 0 / 0
15.07.2006, 09:24
    #33855487
f2f
f2f
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическое удаление
А вместо поля Активна/Удалена советую использовать поле ДатаУдаления.
Тогда можно будет увидеть состояние базы на прошлую дату
...
Рейтинг: 0 / 0
15.07.2006, 12:08
    #33855579
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическое удаление
> Приемлемое решение или нет?

Нет. Логические метки активности - приемлемы и никак не связаны с удалением. Переименование в принципе недопустимо.
...
Рейтинг: 0 / 0
15.07.2006, 12:18
    #33855587
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логическое удаление
Кстати, не логичнее было было Active=1 считать как раз активной записью, а Active=0 удалённой? Это как-то более интуитивно, мне кажется
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Логическое удаление / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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