|
|
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
Поделитесь, пожалуйста, своими соображениями по поводу того, что лучше использовать - внешние ключи или триггеры(например ErWin-овские) для обеспечения ссылочной целостности БД. Ведь кроме субъективных предпочтений, есть еще и реальные показатели производительности, оптимальности работы сервера в том и ином случае. Я, лично, склоняюсь к использованию везде, где можно, внешних ключей, тем более, что в MSSQL2000 поддерживаются каскадные изменения и удаления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 13:30:16 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
Я, лично, склоняюсь к использованию везде, где можно, внешних ключей, тем более, что в MSSQL2000 поддерживаются каскадные изменения и удаления. Правильно склоняетесь, тем более что это лучший подход с точки зрения производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 13:41:17 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
И правильно делаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 13:47:09 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
Поддерживаю мысль о большей целесообразности FK Контроль состояния (FK) всегда проще и, в конечном итоге, эффективнее попытки контроля изменений (триггеры). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 13:50:20 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
Только не все варианты ссылочной целостности можно организовать с помощью PK-FK. Например, "дерево" - нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 14:51:11 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
2Glory Согласен. Но в этом случае проверку целостности мы проводим двумя способами 1. Процедуры проверки целостности записей, запускаемые по соответствующему флагу (или schedule) 2. Вся работа с данными (особенно, insert, update, delete) идет не через прямые запросы а через специальные интерфейсы (в простейшем случае ХП), в ктр осуществляется проверка целостности - некий аналог триггера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 15:34:53 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
2Glory >>Например, "дерево" - нельзя. Можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 15:45:18 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
23JIA9I CyKA С каскадным удалением ? Автор темы, насколько я понял, предлагает выбрать между PK-FK с каскадными операциями и триггерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 15:48:19 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
23JIA9I CyKA >>Можно. Но не всякое :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 15:48:24 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
В нашей системе вместо триггеров и FK используются хр. пр. По-моему, достаточно гибкое решение - триггеры не "тормозят" и FK при изменении структур таблиц не мешаются. Хотелось бы услышать ваше мнение по этому поводу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 17:10:02 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
2 Тимур: Неприятности рано или поздно появятся. Кто-нибудь запустит свой insert/update из QA и "прощай, целостность!". Или бага в процедуре. Самое неприятное в таких случаях то, что потом зачастую не удается без потерь восстановить нарушенные связки. IMHO везде, где это возможно, надо ставить FK. А изменение структуры, да еще такое, при котором нужно отключать проверку целостности - все же не ежедневная (надеюсь) операция, можно и потратить на это чуть-чуть времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 23:40:22 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
Единственный неприятный момент, связанный с FK - то, что MS до сих пор не реализовала каскады для двух FK в одной таблице, ссылающихся на одну и ту же другую таблицу - не самый редкий вариант :( Может и еще какие-то оговорки есть... Как следствие, возникает вопрос, стоит ли частично работать с триггерами, частично с FK. Не лучше ли использовать единую схему (триггеры)... Хотя с точки зрения скорости и качества разработки конечно, FK предпочтительнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2002, 10:57:15 |
|
||
|
FK или триггеры?
|
|||
|---|---|---|---|
|
#18+
FK - проверка констрайнтов вызывает блокировки. Обычно ничего страшного, но при большом кол-ве FK в таблице + активное изменение данных = м.б. потери скорости (и дедлоки). По крайней мере, так было в 6.5 и, думаю, 2000 мало отличается в этом отношении. Триггеры - вообще очень опасная штука. Полностью согласен с Тимуром, у нас также все построено на пр-рах. Проверка целостности тоже находится там - даже если есть FK - в конце концов, сообщение об ошибке при нарушении констрайнта пользователям непонятно. К тому же, всегда проще, когда весь код сосредоточен в одном месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 13:25:35 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32069874&tid=1818291]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 345ms |

| 0 / 0 |
