Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ссылочная целостность, посредством триггеров 
:(
    Опции темы
mspuz
Дата 19.2.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Почитал умную книжку и обнаружил офигенный механизм ссылочной целостности для БД. Я сразу понял, что это как раз то, чего не хватает для наших БД и принялся за дело...В понедельник пришли операторы и принялись за обычную работу, но....стали вылетать ошибки о несоответствии заносимых данных. Сначало я начал править программы, но потом понял, что это слишком дорого и долго и пришлось потихоньку отключать все связки  smile . Так вот вопрос - насколько рационально использование тригерров для обеспечения ссылочной целостности. Я поспрашивал знающих и они говорят, что триггеры исполняются медленней и что это вообще извращение и лучше этого не делать. А Ваше мнение?
Сервер FireBird 2.0 Alpha 2
PM MAIL   Вверх
kobra
Дата 20.2.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



для этои цели нужно пользоватся тригерами в том случае, когда другие средства не могут обеспечить нужную функционалность
PM MAIL   Вверх
superVad
Дата 20.2.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



А поконкретней, что эти тригера делают? Может там внешними ключами обойтись можно.
PM MAIL   Вверх
Akella
Дата 20.2.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



для ссылочной целостности лучше всего использовать внешние  ключи! О как!
PM MAIL   Вверх
DimW
Дата 20.2.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Цитата(mspuz @  19.2.2007,  17:38 Найти цитируемый пост)
Почитал умную книжку 

в печку ее!!!

каждый механизм нужно использоваться по назначению, и не надо придумывать извратных способов в часности организовывать ссылочную целостность тригерами или чево лучше на стороне клиента...
нет ни чего быстрее чем ссылочная целостность организованныя внешними ключами, это уже проверино и доказано не однократно. 

PM MAIL ICQ   Вверх
Akella
Дата 21.2.2007, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(DimW @  20.2.2007,  18:56 Найти цитируемый пост)
в печку ее!!!

Ну зачем же так строго? Если автор книги описАл возможность использования такого механизма, то что в этом плохого? smile 
PM MAIL   Вверх
mspuz
Дата 21.2.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



1. В книге я узнал про ссылочную целостность, а не про её замену на тригерры

2. Я и не говорил, что тригерры лучше или, что я стремлюсь изобрести велосипед с квадратными колесами.

3. Программы, которые работают с БД написанны с использованием BDE и почему то выдают ошибки при наличии ссылочной целостности, хотя целостность не нарушенна.

Для примера, в одной из программ компонент BDE выполнял update и вываливался с ошибкой про внешние ключи. Заменил компонент на IBQuery и ошибка исчезла!!! Получается, что BDE не понимает всех тонкостей FireBird???
Ведь ссылочная целостность присутствовала и в Delphi 3, а тогда была тока BDE, но там был сервер InterBase.
PM MAIL   Вверх
drkot
Дата 21.2.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Возможно порядок заполнения данных в BDE не адекватен твоей базе.
Возможно BDE и не знает что такая (целостость) вообще существует.

Цитата(mspuz @  21.2.2007,  11:49 Найти цитируемый пост)
 IBQuery

Наверняка заточена под IB, что и следует из названия.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
mspuz
Дата 21.2.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



drkot,  Ну вот об этом и речь!!! ТОгда у меня один выход (или есть другой) - использовать тригеры. 
PM MAIL   Вверх
Fazil6
Дата 21.2.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 1
Всего: 60



Цитата

ТОгда у меня один выход (или есть другой) - использовать тригеры. 

выход в том, чтобы не использовать BDE
PM MAIL   Вверх
mspuz
Дата 21.2.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Fazil6,  Программа была написана несеолько лет назад и изменять её никто не будет (тем более по правилам программистов, если работает тогда не трогай - пускай работает).

Вопрос был в следующем - насколько надежны и быстры триггеры и есть ли смысл их использовать, или это лишь замедлит процесс???
PM MAIL   Вверх
superVad
Дата 26.2.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



Это в любом случае замедлит процесс - ведь чтото делать всегда дольше чем ничего не делать. А вот на сколько замедлит это надо проверять.
PM MAIL   Вверх
skyboy
Дата 26.2.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



иногда без триггеров не обойтись: например, если таблица для обеспечения ссылочной целостности должна ссылаться на саму себя(например, хранение дерева в виде связки "отец"+"сын"). у меня, по крайней мере, foreign key на саму себя не создался под IB 6.5. Обошёлся триггерами. Но они, естественно, потенциально медленнее, т.к. намного гибче ссылочной целостности... Кто-то же эту гибкость должен реализовывать... smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.