|
|
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
Доброй день. Вопрос собственно говоря в теме. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 12:18 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
ziver87, Кто сказал, что нельзя? Бизнес? Значит им эти данные нужны. Удалять нельзя. Точка. Архитектор? Либо так нужно бизнесу и поэтому см. выше, либо есть существенные ограничения по архитектуре. Например - нужно будет периодически удалять большие объемы данных и это (возможно) будет очень ресурсно затратной операцией, поскольку удаление для БД тяжелее, чем апдейт. Тогда см. ниже. ДБА? У него могут быть резоны, но их надо рассматривать в пятую очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 12:24 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
"Нельзя" это слишком категоричное заявление. Можно, но не всегда. Правильнее "нельзя в некоторых случаях": 1. На запись ссылаются записи других таблиц, т.е. при удалении нарущится целостность БД 2. Удаление записи требует физического перестроения таблицы (например в DBF) 3. Репликацию удаления сложнее делать чем репликацию изменения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 12:32 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
+ реализовать отмену проще сняв пометку, а не роясь в логах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 12:55 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
Помеченное всегда можно удалить, если понадобится. А вот удалённое, если понадобится, поднять уже не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 13:19 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
Если данные не удалять, и не помечать как удаленные, а ставить им временную метку (дату, то есть), то можно получать из БД данные или состояние "назад, на момент времени". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 16:07 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
S.G.Если данные не удалять, и не помечать как удаленные, а ставить им временную метку (дату, то есть), то можно получать из БД данные или состояние "назад, на момент времени". это метка "дата внесения записи". метка удаления - отдельно. метка внесения подразумевает хранение изменений (отдельно или еще как-то). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 18:59 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
AkinaА вот удалённое, если понадобится, поднять уже не получится. Зависит от состояния бэкапов. По большому счету желание вернуть удаленное говорит о том что что-то ненормально в администрировании БД. S.G.можно получать из БД данные или состояние "назад, на момент времени". Это на усмотрение паранойи админа БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 19:48 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
Dima T, бэкапы редко и хранятся долго, и при этом остаются бессбойными. А главное - назначение бэкапов вовсе не в восстановлении неожиданно потребовавшихся старых данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2015, 21:33 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
ziver87, Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например? Можно, а иногда даже нужно, и это все - требование постановки задачи, так что обсуждать вопрос в общем ключе нет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2015, 08:00 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
Павел Воронцовудаление для БД тяжелее, чем апдейт где-то на sql.ru была целая дискуссия по этой теме и пришли к выводу, что дешевле удалить и создать, нежели обновлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2015, 08:54 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
eNoseПавел Воронцовудаление для БД тяжелее, чем апдейт где-то на sql.ru была целая дискуссия по этой теме и пришли к выводу, что дешевле удалить и создать, нежели обновлять.Сильно зависит от того что и где удаляется/апдейтится. В оракле так, в мс этак, а мускуль ваще третьим образом. Архитектор должен быть в курсе всех ньюансов, их тут вон еще пяток здравых накидали (репликация и пр.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2015, 11:39 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
ziver87Доброй день. Вопрос собственно говоря в теме. Спасибо. Вопрос в теме сформулирован категорически неверно. Основной фактор, который действует в данном случае, таков: если информационная система так или иначе документирует "обычную повседневную деятельность" предприятия, то у работающих с ней время от времени возникает необходимость "найти концы", то есть: обнаружив какое-либо несоответствие, какую-либо неожиданную ситуацию, понять, из-за чего она возникла, проанализировать, действительно ли всё должно так быть и при необходимости исправить. Ну а для того, чтобы это было возможно, необходимо иметь не только текущие данные, но и исторические. Необходимость же иметь исторические данные, в свою очередь, порождает необходимость хранить соответствующие им записи в справочниках и т. п. Например, в моей практике был такой эпизод. Клиент пожаловался на то, что ему для договора рассчитаны совершенно левые цены на сервисное обслуживание. Разбирательство показало, что в какой-то момент сотрудник ошибся и ввёл на некоторые товарные позиции неверные цены (в несколько раз отличающиеся от истинных). Через несколько минут он исправил свою ошибку, но именно в это время другой сотрудник нажал кнопку "договор заключён", и тот сформировался с ценами, рассчитанными на основании кривых товарных. Таким образом, если бы неактуальные цены удалялись, разобраться в этой истории оказалось бы невозможным, и она завершилась бы претензией к программистам на тему "опять ваша программа сделала полную хрень" и поиском отсутствующей ошибки. Отсюда и следует вывод, когда можно удалять операционные данные - тогда, когда они не успели повлиять на какие-нибудь бизнес-процессы в системе. В других типах систем могут быть другие правила. Скажем, когда считается аналитика, одним из возможных подходов является удалить вообще всё и заново загрузить и обсчитать данные с нуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 13:47 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
Есть системы данных которые изначально проектировались как неудаляемые. EventStore например. Ты можешь строить сколь угодно сложные mviews над ними но из главного потока событий ничего удалить невозможно если оно попало в хранилище. Требование - нельзя удалять данные из таблиц вполне себе обыденно. Такое бывает. Обычно это вешают на шибко важные справочники. Если надо их поправить - то заводится новая запись с новой датой или version number. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 15:29 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
вообще читал в книжке умной, что делать такое очень плохая практика. Так как такое поле ведет большой путанице и образованию гор мусора. В почти во всех реляционных базах данных есть каскадное удаление для сохранения целостности. А если нужно "удалить" строку, то более правильно переместить её в другое место (как вариант). То есть сохранить в другом месте или в другом виде, а потом восстановить по необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 10:12 |
|
||
|
Почему нельзя удаляь данные из таблиц а нужно помечать как удаленные например?
|
|||
|---|---|---|---|
|
#18+
В реляционных БД в любой таблице должен существовать идентифицирующий суб-набор данных, значение которого однозначно и бесконфликтно идентифицирует запись. В простейшем случае это первичный (или хотя бы просто уникальный, возможно также составной) ключ. Именно этот субнабор отвечает в т.ч. за работу подсистемы целостности и непротиворечивости данных. Исходя из его смысла - его значение должно оставаться уникальным и соответствовать некоей конкретной записи в течение всего срока жизни БД. Даже в том случае, когда сама запись удалена из таблицы. В противном случае возможны ситуации, когда невозможно однозначно установить соотношение, потому как неизвестно, к какому из экземпляров сущности, идентифицируемых по значению уникального набора, следует относить атрибуты. Насколько я знаю, на текущий момент не существует СУБД, поддерживающих такое ограничение целостности - все они оперируют исключительно данными, присутствующими в таблицах. Т.е. существующие реализации подсистемы контроля целостности просто не готовы к тому, чтобы отслеживать целостность и непротиворечивость связей физически удалённой из таблицы записи. Именно поэтому данные удалять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 10:38 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38965393&tid=1341006]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 483ms |

| 0 / 0 |
