|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_Oneпроехали, мы о разном ... Ок. Я за то чтобы в бизнес требованиях ставить галку Удален или Актуален или Уволен. Но не а все подряд таблицы. Ты наверно про это. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:17 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzДобрый день. EF Core. Возникло требование не удалять строки в базе а помечать как удаленные. Подскажите пожалуйста - есть ли способ сделать это как то автоматом, не засоряя модели признаком isDeleted и чтоб работало каскадное удаление (то есть каскадное выставление признака isDeleted ) Спасибо НЕТ. нельзя. точнее, попытайся что-то изобразить и на простетских примерах что-то да получится, но граблей столько, что не оберёшься. IsDeleted натуральное зло, тупейший костыль, которым грешат нубасы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:42 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
hVosttIsDeleted натуральное зло, тупейший костыль, которым грешат нубасы.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:56 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
hVosttVladimirzzzДобрый день. EF Core. Возникло требование не удалять строки в базе а помечать как удаленные. Подскажите пожалуйста - есть ли способ сделать это как то автоматом, не засоряя модели признаком isDeleted и чтоб работало каскадное удаление (то есть каскадное выставление признака isDeleted ) Спасибо НЕТ. нельзя. точнее, попытайся что-то изобразить и на простетских примерах что-то да получится, но граблей столько, что не оберёшься. IsDeleted натуральное зло, тупейший костыль, которым грешат нубасы. Правильно! Надо IsActive ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 15:01 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
skyANAПравильно! Надо IsActive Шутка не удалась ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 15:14 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Вообще этому решению сто лет в обед. Как-то тётя Маша случайно удалила записи об отгрузке нефти на кругленькую сумму денег и тут же возникло требование ни фига из базы физически не удалять. Требование было реализовано. Понятно, что с того времени появились лучшие варианты не потерять важные данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 15:30 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
skyANAВообще этому решению сто лет в обед. Как-то тётя Маша случайно удалила записи об отгрузке нефти на кругленькую сумму денег и тут же возникло требование ни фига из базы физически не удалять. «Ничего физически не удалять» и так называемый флаг «удаления», который можно встретить в овер 80% системах, это не одно и то же :) skyANAТребование было реализовано. Это понятно. Но как и многие плохие привычки, исходят из какой-то разовой необходимости, потом остаются надолго и кочуют из проекта в проект, просто бездумно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 19:48 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
hVosttIsDeleted натуральное зло, тупейший костыль, которым грешат нубасы. а что не зло? как делают не нубасы? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 20:26 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
love_bach, Вроде весь топик в ответах) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 20:33 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
love_bachhVosttIsDeleted натуральное зло, тупейший костыль, которым грешат нубасы. а что не зло? как делают не нубасы? Операция «Удаление» это удаление, оно должно приводить к удалению данных из системы. Что должен понять сотрудник глядя на запись с IsDeleted == true? Это что вообще значит? Случайно создали кривую запись и грохнули? Объект выведен из эксплуатации? Ошибка тёти Маши? Как это вообще отвечает целостности, за которую так божатся, выбирая SQL? Если записи нет, на неё сослаться нельзя, буквально физически, сервер не даст с констрейтами. Ещё момент. Наивная уверенность в сохранности данных. Типа, если случайно что-то там грохнули, не беда это восстановить, просто вернув флаг. Но это не так. Нельзя вернуть никакую запись, которая участвует в формировании балансов, сумм, лимитов и прочего. Любая бизнес-система инкрементальная, каждая операция меняет её состояния, каждая операция основывается на состоянии. Если что-то просто «вернуть к жизни», значит все операции, которые были совершены после «удаления» нельзя считать корректными. Потом. Писать запросы с учётом IsDeleted, строить отчёты, проводить какую-то аналитику, становится дорогим и затратным делом. Всё равно, что лазить в холодильник и выбирать какая колбаса свежая, из всего мусора, который там навален. И наклеечки «пропало» не улучшают ситуацию. Но всё равно так делают. Много и часто. И не от большого ума, скорее прикрыть точку, ну и от бездарности и лени (не той, что делает разработчика профессионалом, а другой консистенции). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 20:37 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
hVosttlove_bachпропущено... а что не зло? как делают не нубасы? Операция «Удаление» это удаление, оно должно приводить к удалению данных из системы. Что должен понять сотрудник глядя на запись с IsDeleted == true? Это что вообще значит? Случайно создали кривую запись и грохнули? Объект выведен из эксплуатации? Ошибка тёти Маши? Как это вообще отвечает целостности, за которую так божатся, выбирая SQL? Если записи нет, на неё сослаться нельзя, буквально физически, сервер не даст с констрейтами. Ещё момент. Наивная уверенность в сохранности данных. Типа, если случайно что-то там грохнули, не беда это восстановить, просто вернув флаг. Но это не так. Нельзя вернуть никакую запись, которая участвует в формировании балансов, сумм, лимитов и прочего. Любая бизнес-система инкрементальная, каждая операция меняет её состояния, каждая операция основывается на состоянии. Если что-то просто «вернуть к жизни», значит все операции, которые были совершены после «удаления» нельзя считать корректными. Потом. Писать запросы с учётом IsDeleted, строить отчёты, проводить какую-то аналитику, становится дорогим и затратным делом. Всё равно, что лазить в холодильник и выбирать какая колбаса свежая, из всего мусора, который там навален. И наклеечки «пропало» не улучшают ситуацию. Но всё равно так делают. Много и часто. И не от большого ума, скорее прикрыть точку, ну и от бездарности и лени (не той, что делает разработчика профессионалом, а другой консистенции). аргументировано. но это ответ на вопрос "почему это зло". я же хотел ответ на вопрос "как делать добро", ведь это действительно частое требование заказчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 20:51 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
love_bachhVosttпропущено... Операция «Удаление» это удаление, оно должно приводить к удалению данных из системы. Что должен понять сотрудник глядя на запись с IsDeleted == true? Это что вообще значит? Случайно создали кривую запись и грохнули? Объект выведен из эксплуатации? Ошибка тёти Маши? Как это вообще отвечает целостности, за которую так божатся, выбирая SQL? Если записи нет, на неё сослаться нельзя, буквально физически, сервер не даст с констрейтами. Ещё момент. Наивная уверенность в сохранности данных. Типа, если случайно что-то там грохнули, не беда это восстановить, просто вернув флаг. Но это не так. Нельзя вернуть никакую запись, которая участвует в формировании балансов, сумм, лимитов и прочего. Любая бизнес-система инкрементальная, каждая операция меняет её состояния, каждая операция основывается на состоянии. Если что-то просто «вернуть к жизни», значит все операции, которые были совершены после «удаления» нельзя считать корректными. Потом. Писать запросы с учётом IsDeleted, строить отчёты, проводить какую-то аналитику, становится дорогим и затратным делом. Всё равно, что лазить в холодильник и выбирать какая колбаса свежая, из всего мусора, который там навален. И наклеечки «пропало» не улучшают ситуацию. Но всё равно так делают. Много и часто. И не от большого ума, скорее прикрыть точку, ну и от бездарности и лени (не той, что делает разработчика профессионалом, а другой консистенции). аргументировано. но это ответ на вопрос "почему это зло". я же хотел ответ на вопрос "как делать добро", ведь это действительно частое требование заказчика. я, например, пришел к выводу, что такие "IsDeleted" - это фактически требование наличия лога, отличного от основной структуры БД ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 20:53 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
love_bachаргументировано. но это ответ на вопрос "почему это зло". я же хотел ответ на вопрос "как делать добро", ведь это действительно частое требование заказчика. 1. данные и правда надо хранить, по умолчанию, но не вместе с актуальными живыми данными 2. у любого объекта в информационной системе есть свой жизненный цикл, и вряд ли он заканчивается удалением, ну мне лично тяжело найти такой пример, если это не лог какой-нибудь, это может быть статус, рейндж дат начала/окончания или просто факт остаётся фактом навсегда 3. восстановление данных по сути это добавление заново со всеми вытекающими, или это переписывание истории, в маленьких системах (каких-нибудь АРМ-ах), можно и тупо восстанавливать меняя флаг, но в целом, это не верный подход, и такое умение не имеет ценности на перспективу, надо учиться делать правильно 4. вариантов как делать добро много, зависит от задач, технологий, методик, архитектуры и т.д. основной принцип: никогда не храни актуальный живые данные со всяким мусором. куда ты будешь его складывать и как хранить, дело десятое. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 21:03 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
love_bachя, например, пришел к выводу, что такие "IsDeleted" - это фактически требование наличия лога, отличного от основной структуры БД лог это немного другое. обычно лог для разбирательств. а IsDeleted для разбирательств, как пятая нога. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 21:04 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
love_bachже хотел ответ на вопрос "как делать добро", ведь это действительно частое требование заказчика.не думайте вместе с заказчиком в терминах Запись. Вот и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 21:59 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Добрый день. Может я ошибаюсь, но когда то кажется dbase жил на таких isDelete. А еще есть ситуация когда со стороны заказчика выступает технический специалист который говорит "Хочу от такую структуру данных потому как формочкам этим вашим я не доверяю, а буду руками чо надо редактировать". И тут спор плавно перетекает в тему а стоит ли оно того, за какой проект браться и в каких условиях и.т.д. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 12:47 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzМожет я ошибаюсь, но когда то кажется dbase жил на таких isDelete. Жил. В DBF структура линейная, типа классического массива, как следствие невозможно удалить запись из середины без сдвига всего массива, что дорого, поэтому придумали пометку на удаление вместо полноценного удаления. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 12:51 |
|
|
start [/forum/topic.php?fid=17&msg=39640388&tid=1349198]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
246ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 349ms |
0 / 0 |