Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 October 27

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Спасибо
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Ребят, подскажите где почитать по теме:
пришлось делать проект в котором идёт обработка заказов. У каждого заказа несколько атрибутов разрешающих или запрещающих его редактировать/удалять и ещё несколько.. так же есть 4 режима от которых зависят некоторые настройки записи в базу. Всё это хранится в таблицах. И чтобы записать в базу какое-то значение по заказу приходится делать кучу проверок с объединением нескольких таблиц.
Получается громадный запрос с тучей подзапросов и различных условных операторов.
Выглядит монструозно, с полпинка и не разобраться что к чему в нем. Начал сомневаться, что все правильно делаю.
Какие "best practices" так сказать тут?
Гуглил по всякому, но безрезультатно
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Первое, что приходит на ум - один атрибут, разрешающий редактирование/удаление. А вот его значение записывать в зависимости от текущего состояния остальных атрибутов/проверок.
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Если бизнес-процесс сложный, можно подумать о жизненном цикле заказа и его переходе по состояниям (шагам бизнес-процесса). При этом у каждого состояния будут свои разрешения.
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Я думал обработку атрибутов делать на клиенте, но это, вроде как небезопасно. Прав ли я или все же переложить часть работы на клиент?
Просто, например, тот же атрибут запрета редактирования изменяется руками на клиенте и в базу записывается не разрешенное значение
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
На клиенте я бы не стал
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
слушайте, а как можно определить причину аттеншна, если в TextData пусто? pytds генерит с частотой десяток аттеншнов в секунду, при этом в самом pytds ошибок не выскакивает, запросы (которые вызывают аттеншны) выполняются оч быстро (не похоже на аттеншн по таймауту), данные возвращают (не похоже на аттеншн по отмене запроса)
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
Переслано от Max Chistyakov
источник

IL

Ilgga Latypovv in SqlCom.ru - Стиль жизни SQL
Тут интересный вопрос :как сделать, чтобы uncommited не смогло прочитать незаконченные изменения?
источник

Д

Денис Лёвкин... in SqlCom.ru - Стиль жизни SQL
Ilgga Latypovv
Тут интересный вопрос :как сделать, чтобы uncommited не смогло прочитать незаконченные изменения?
Может перейти на снапшот изоляцию
источник

IL

Ilgga Latypovv in SqlCom.ru - Стиль жизни SQL
Почему-то она не ставится, может там надо что-то разрешить юзеру?
источник

IL

Ilgga Latypovv in SqlCom.ru - Стиль жизни SQL
Там
Alter database abc set read... on
Не работают
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Ребят, подскажите где почитать по теме:
пришлось делать проект в котором идёт обработка заказов. У каждого заказа несколько атрибутов разрешающих или запрещающих его редактировать/удалять и ещё несколько.. так же есть 4 режима от которых зависят некоторые настройки записи в базу. Всё это хранится в таблицах. И чтобы записать в базу какое-то значение по заказу приходится делать кучу проверок с объединением нескольких таблиц.
Получается громадный запрос с тучей подзапросов и различных условных операторов.
Выглядит монструозно, с полпинка и не разобраться что к чему в нем. Начал сомневаться, что все правильно делаю.
Какие "best practices" так сказать тут?
Гуглил по всякому, но безрезультатно
Не понятно, в чём проблема...
Тебе запрос не написать?
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Не понятно, в чём проблема...
Тебе запрос не написать?
Не, напишу.
Прост он оч большим получается, с несколькими ветками из-за ифов и кейсов и каждый раз его выполнять при изменении любого значения в заказе.
Подумал, мож чего не правильно делаю
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Не, напишу.
Прост он оч большим получается, с несколькими ветками из-за ифов и кейсов и каждый раз его выполнять при изменении любого значения в заказе.
Подумал, мож чего не правильно делаю
покажи...
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
покажи...
С тела я его час писать буду)))
+ "ТЗ" расписывать надо
Описал проблему "в двух словах", думал понятно в общих чертах
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
С тела я его час писать буду)))
+ "ТЗ" расписывать надо
Описал проблему "в двух словах", думал понятно в общих чертах
В общих чертах понятно.
У тебя - общая проблема.
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
С тела я его час писать буду)))
+ "ТЗ" расписывать надо
Описал проблему "в двух словах", думал понятно в общих чертах
Ну сделай вюхи  тай селект с них
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Или процедурами атрибуты проверяй
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
В общих чертах понятно.
У тебя - общая проблема.
Хых...
Я оч рад помощи, спасибо
Но прост реально такое в чат вываливать, подумал ссаными тряпками погонят.
Завтра у компа буду, напишу
источник