удалять ли записи из бд насовсем

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Еугений
Сообщения: 163
Зарегистрирован: 2014.11.12, 16:00

удалять ли записи из бд насовсем

Сообщение Еугений »

или запись помечать как "удаленную" типа deleted = 1
Я знаю, что удалять насовсем не надо, если на запись ссылаются другие записи, иначе будет ошибка. например, при выводе поста идет соединение с таблицей пользователей, чтобы узнать автора по id. если этот автор удалён, то будет ошибка.

мне интересно как поступаете вы в своих проектах
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: удалять ли записи из бд насовсем

Сообщение girmate »

Если Вы полностью удаляете пользователя нужно удалять и все что с ним соотносилось. Можно эту задачу переложить на БД. Читайте по теме ограничения внешнего ключа.

Но бывают случаи, когда например тарифный план сотовой связи ушел в архив, но данные по нему все равно нужны. Ведь тариф когда-то же кому-то продавался. Или пользователь удален, но ведь в балансе интернет-магазина его покупки не удалишь, так как они используются в системах отчетов. Поэтому дело вашей реализации удалять Вам пользователя и помечать как удаленный.
Осторожно! Вы общаетесь с новичком ;)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: удалять ли записи из бд насовсем

Сообщение zelenin »

Еугений писал(а):или запись помечать как "удаленную" типа deleted = 1
Я знаю, что удалять насовсем не надо, если на запись ссылаются другие записи, иначе будет ошибка. например, при выводе поста идет соединение с таблицей пользователей, чтобы узнать автора по id. если этот автор удалён, то будет ошибка.

мне интересно как поступаете вы в своих проектах
по разному. важные для бизнеса вещи лучше помечать флажком, а не удалять физически.
Еугений
Сообщения: 163
Зарегистрирован: 2014.11.12, 16:00

Re: удалять ли записи из бд насовсем

Сообщение Еугений »

zelenin писал(а): по разному. важные для бизнеса вещи лучше помечать флажком, а не удалять физически.
а нормально ли, если удалять может не только админ, но и пользователи? например, свои сообщения, комментарии...
Еугений
Сообщения: 163
Зарегистрирован: 2014.11.12, 16:00

Re: удалять ли записи из бд насовсем

Сообщение Еугений »

а то я чето запарился везде в запросы пихать where delete != 0
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: удалять ли записи из бд насовсем

Сообщение girmate »

Еугений писал(а):
zelenin писал(а): по разному. важные для бизнеса вещи лучше помечать флажком, а не удалять физически.
а нормально ли, если удалять может не только админ, но и пользователи? например, свои сообщения, комментарии...
Ну и пусть удаляют. В чем проблема? Если нужны - пометить как удаленные, но админ всегда может посмотреть их. Если бизнес-логика не учитывает хранение истории - можно и удалять насовсем, если больше нигде не используются. Или что Вы имели в виду?
Последний раз редактировалось girmate 2016.11.03, 01:17, всего редактировалось 1 раз.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: удалять ли записи из бд насовсем

Сообщение girmate »

Еугений писал(а):а то я чето запарился везде в запросы пихать where delete != 0
https://github.com/yiisoft/yii2/blob/ma ... сов-query-
Осторожно! Вы общаетесь с новичком ;)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: удалять ли записи из бд насовсем

Сообщение zelenin »

Еугений писал(а):
zelenin писал(а): по разному. важные для бизнеса вещи лучше помечать флажком, а не удалять физически.
а нормально ли, если удалять может не только админ, но и пользователи? например, свои сообщения, комментарии...
это не относится к теме вашего вопроса.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: удалять ли записи из бд насовсем

Сообщение maleks »

Еугений писал(а): Я знаю, что удалять насовсем не надо, если на запись ссылаются другие записи, иначе будет ошибка. например, при выводе поста идет соединение с таблицей пользователей, чтобы узнать автора по id. если этот автор удалён, то будет ошибка.
вы можете спрограммировать и так чтобы не было ошибки.
Имхо помечать флажком и не удалять - это уже особый случай, а не для всего по умолчанию.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: удалять ли записи из бд насовсем

Сообщение samdark »

Мы у себя помечаем. Как показала практика, юзеры иногда ошибаются и пишут в саппорт с просьбой вернуть.
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: удалять ли записи из бд насовсем

Сообщение girmate »

Удалить всегда можно успеть. Конечно лучше сделать пометку. Особенно когда по проекту/заданию не известно - нужны когда-нибудь будут эти данные или нет.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: удалять ли записи из бд насовсем

Сообщение Elfer »

Уже много лет программирую и сталкивался точно с такой же проблемой, а точнее с таким же вопросом, как быть: помечать или удалять? Практика показала, что лучше помечать как deleted. Так сохраняется целостность данных. Были конкретные прецеденты, например: комментарии пользователя либо еще какие-то его следы на сайте. И при их чтении в скриптах вызывалась ошибка, мол такого юзера нет.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: удалять ли записи из бд насовсем

Сообщение maleks »

Elfer писал(а):Практика показала, что лучше помечать как deleted. Так сохраняется целостность данных. Были конкретные прецеденты,
а вот (пункт 1.) прецедент минуса такой практики.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: удалять ли записи из бд насовсем

Сообщение zelenin »

maleks писал(а):
Elfer писал(а):Практика показала, что лучше помечать как deleted. Так сохраняется целостность данных. Были конкретные прецеденты,
а вот (пункт 1.) прецедент минуса такой практики.
то, что чпу занимается? это минус конкретной реализации, а не принципа. а конкретно следствие вынесения бизнеса в БД из приложения.
Ответить