![]() |
|
Модераторы: LSD |
![]()
|
|
| SID_M |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 11.2.2005 Где: Россия, г. Москва Репутация: нет Всего: нет |
Доброго времени суток, Коллеги!
Давайте порассуждаем на тему: "Как лучше контролировать целостность данных?" Добавлено через 4 минуты и 4 секунды Начну первый. Очевидно, что на простых структурах использование Constraint-a кажется более надежным способом. Мы снимаем с себя головную боль (проектирование базы так, чтобы это можно было сделать не в счет) и перекладываем контроль на СУБД. Но вот бывают случаи, когда более удобнее хранить сложные структуры (нагруженные графы) и очевидного решения, чтобы обеспечить уникальность данных с применением Constraint-ов не находится. (Не обязательно такого решения нет) Так вот как тут поступить? Использовать ли контроль уникальности на Функциональном уровне (Триггеры, Изменение в таблице только через хранимые процедуры) или всё-таки попытаться подогнать архитектуру базы так, чтобы можно было использовать Constraint-ы? Я за Функциональный контроль в этом случае. --------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
А смысл рассуждать?
В каждом отдельно взятом случае следует решать, что эффективнее. В т.ч. с учётом, что для данного конкретного случая считать более эффективным. А общие рассуждения без связи с конкретным проектом бессмысленны. Если ты хочешь выработать некие общие рекомендации по осуществлению выбора в каком-нить конкретном случае - можешь считать, что эту задачу ты уже решил. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 7 Всего: 44 |
А что нужно понимать под "целостность данных" в данном случае?
Вот интересный пример Судя по всему вопрос про ограничение значений на столбец, без создания внешнего ключа? ИМХО, огромный минус триггеру в том, что он будет работать в контексте транзакции, и если проверка значения зависит от данных в других таблицах, то о целостности не может быть и речи. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Без огромного геморроя ссылочная и уникальная целостность с помощью триггеров не реализуется. С другой стороны сложная проверка добавляемых/редактируемых данных констрейнами не реализуется.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
вы с простыми разберитесь: - таблица test - поле name должно быть уникально - два пользователя одновременно вносят "ИВАНОВ" в таблицу test контролируйте! (пример контроля в студию) Это сообщение отредактировал(а) DimW - 15.4.2010, 15:11 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
все что можно ограничить декларативными правилвами - ограничиываем ими.
все остальное уж придется кастылить триггерами. Следует понимать, что не для всякого декларативного ограничения есть эквивалентное решение на триггерах. На что весьма наглядно намекает DimW. Это сообщение отредактировал(а) Zloxa - 15.4.2010, 16:14 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
||||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |