Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггеры или PK -> FK?
|
|||
|---|---|---|---|
|
#18+
Вот сижу и размышляю, что лучше. Конечно для сложной поддержки целостности со всякими условиями и т.д. понятно, что лучше. А вот каогда мне просто удалить или апдейтить связанные записи надо, что больше подходит? Конечно и тут вроде все ясно, но встают вопросы: 1) а достаточно ли диаграммы надежны для больших объемов? 2) нет ли подводных камней при работе с ADO? Пожалуйста поделитесь опытом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2001, 09:32 |
|
||
|
Триггеры или PK -> FK?
|
|||
|---|---|---|---|
|
#18+
Ado - это надстройка над oledb. oledb это механизм доступа к данным, следовательно ни ado ни oledb никак не связанны с поддержкой целостности. Что касается поддержки с помощью DRI или триггеров - конечно DRI отрабатывает быстрее, так как эти проверки производятся ядром сервера до начала транзакции. Но с появлением триггеров instead это преимущество можно свести к минимуму. Контроль триггерами (в случае их корректного написания) ничем не уступает DRI по надежности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2001, 09:50 |
|
||
|
Триггеры или PK -> FK?
|
|||
|---|---|---|---|
|
#18+
Вот один камешек довольно большого размера. Делаем триггер на удаление, который удаляет связанные записи из подчиненной таблицы. cretate trigger BeforDeleteProjects ON [dbo].[Projects] FOR DELETE AS delete from ProjectsModules where kode in (select Id from deleted) Согласетись все просто как божий день да не тут то было. Этот код работать не будет. Вот именно этот delete и не сработает. Т.е. коненчо сам delete пройдет, но на клиента вернется ошибка, говорящая о том, что слишком много записей бало размещено для изменения. Вы скажете ADO тут непричем? Еще как причем!!! Если в этот триггер вставить set nocount on все будет хорошо. Мне кажется это и есть подводный камень с самой большой буквы. У Вас есть серьезный(всмысле размеров БД) опыт работы c DRI? Если есть буду оченнь рад почитать его, т.к. для меня этот вопрос очень важен. Проект большой, если ошибусь... А почему DRI без транзакций? Как тогда изменения откатываются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2001, 01:29 |
|
||
|
Триггеры или PK -> FK?
|
|||
|---|---|---|---|
|
#18+
Пример не рабочий. Либо таблицы не связанны, либо связанны нечеткой связью. Во втором случае надо было это оговорить - связи, по сути, тоже нет. А если связь существует, то триггер даже и работать не начнет - вылетит ошибка о нарушении DRI. Ну так Вы сами себе противоречите. Удаление то происходит любом случае! Просто ado ИНФОРМИРУЕТ о том, что действие затронуло больше записей, чем предполагалось. Не хотите чтобы вываливалось такое сообщение - поставьте nocount on. Хотя можно игнорировать эту ado'шную параною в клиентском приложении. Сервер то ошибки не генерит, и работает правильно. DRI ничего не откатывает. Просто проверяет, и если есть нарушение, то генерит ошибку. А что вы с этой ошибкой будете делать - это Ваше дело. Нормально пасется самое большое около 500 000 записей. Это для MSSQL совсем не много. Проблем на этом не имел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2001, 02:14 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1825952]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 391ms |

| 0 / 0 |
