|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
Gallemar, Не увидел. Скинь на почту, будет быстрее ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 10:49 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
Док, В топике ничего нет, во-первых. Только первичный ключ. ФК на хозяина предполагается, что логично. Но вот уникальность флагов для конкретного фк - это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 11:51 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
ДокAndrey_Уж лучше в приложение :) А потом какой-нибудь дурак вручную поправит базу, а приложение или сильно задумается при выборке, или возьмет первую, формально подходящую, запись. И будут вопли, что все работает неправильно :)Далеко тебя занесло. Перед тем как выдвигать такие гипотезы, нужно ответит минимум на один вопрос (как минимум самому себе как product-owner-у): "система должна быть готова к тому, что в нее полезу снаружи и будут менять данные?" Если нет - в общем случае не важно как будет реализовано обновление адресов, через тригер, бизнес-логику клиента или как-нибудь астрально. Если да - желательно в БД сделать свой АПИ (в виде набора хранимок/тригеров/вьюх контролирующих корректность поступающих данных) и через него работать с БД из своего приложения. А прямой доступ к таблицами забрать полностью (ну или select оставить, так и быть уж). Это нужно чтобы когда сторонние приложения начнут лазить в твою БД своими грязными рученками, они лазили по тому же интерфейсу, что и твое приложение. В результате будет гораздо меньше трудозатрат на поддержку внешнего интерфейса БД. Но это всё весьма сферически. На своей практике вторую модель взаимодействия с БД я встречал только в банках (да и то очень фрагментарно). Все остальные учетные системы с этим не заморачивались и были полностью открыты для сторонних приложений. Максимум - не большой АПИ для интеграций, который не замещает общий доступ к ресурсам, а делает его чуть более удобным. P.S. А еще, в качестве минимальной защиты себя от "дурачка вручную правящего базу" можно сделать логирование. Это формально защитит тебя как разработчика от нападок клиентов, но не защитит клиентов от ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 12:28 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
KreatorXXIДок, В топике ничего нет, во-первых. Только первичный ключ. ФК на хозяина предполагается, что логично. Но вот уникальность флагов для конкретного фк - это как? "Уникальность" флагов для одного фк при помощи триггера и была темой этого топа. Ты о чем вообще? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 13:00 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
Док, Я о том, что триггер не обрабатывает ситуацию когда оба флага сняты. И где эта обработка не ясно. Мне просто интересно, как Вы защищаетесь от этого? Как вариант, конечно, пусть все записи без флагов. Но мне и это не понятно - записи есть, а результат получить невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 13:24 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
Andrey_, >> Далеко тебя занесло Я не технарь, но в любом деле есть базовые понятия. Насколько я для себя уяснил, имеющиеся в сервере механизмы контроля изменения данных - это и есть защита от дурака. И реализовать их можно различными способами. И этот контроль почти никак не должен зависеть от логики прикладной программы. Логирование - это способ протоколирования изменений и к "защите от дурака" имеет весьма отдаленное отношение ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 14:09 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
KreatorXXIДок, Я о том, что триггер не обрабатывает ситуацию когда оба флага сняты. И где эта обработка не ясно. Мне просто интересно, как Вы защищаетесь от этого? Как вариант, конечно, пусть все записи без флагов. Но мне и это не понятно - записи есть, а результат получить невозможно. А-а-а. .. Вот ты о чем :) У меня задача практическая. Мне нужна не абстрактная уникальность, а уникальность True флагов поля в пределах одного фк Зы. Засим, думаю тему можно закрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 14:34 |
|
Нужна помощь в написании триггера
|
|||
---|---|---|---|
#18+
ДокНасколько я для себя уяснил, имеющиеся в сервере механизмы контроля изменения данных - это и есть защита от дурака. И реализовать их можно различными способами. И этот контроль почти никак не должен зависеть от логики прикладной программы. Сферически - да. Практически - а оно надо? Это тот самый вопрос "система должна быть готова к тому, что в нее полезу снаружи и будут менять данные?". В данном случае система - это комплекс из БД и прикладного приложения. Ты таки попробуй ответить себе на этот вопрос. Возможно в результате пропадет много других вопросов... или наоборот - появится :) ДокЛогирование - это способ протоколирования изменений и к "защите от дурака" имеет весьма отдаленное отношение ;)Зависит от того, кого мы хотим защитить и от чего. Если пользователя чтобы он глупости не делал, то да, обычно логи плохо помогают... Пока руководителю пользователя не покажешь красивое окошко в котором написано когда и как товарищь Пупкин поставил эту злощастную галочку. А если хотим защитить себя от поиска несуществующей ошибки, или злонамеренных действий одного из пользователей - вполне работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 15:40 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1561989]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 446ms |
0 / 0 |