Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка may cause cycles or multiple cascade paths, ms sql server 
:(
    Опции темы
anatox91
Дата 4.12.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

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



пытаясь реализовать небольшую базу данных про футбольные матчи столкнулся с такой проблемой. При попытке создать таблицы выдает ошибку
Цитата
Introducing FOREIGN KEY constraint 'FK__Club__ID_city__1BFD2C07' on table 'Club' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.



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

вот как выглядят "замешанные в этом" таблицы

user posted image

Это сообщение отредактировал(а) anatox91 - 4.12.2011, 18:14


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
anatox91
Дата 4.12.2011, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

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



неужто никто не может помочь?


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
Zloxa
Дата 5.12.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(anatox91 @  4.12.2011,  18:13 Найти цитируемый пост)
как обойти эту ошибку


Цитата(anatox91 @  4.12.2011,  18:13 Найти цитируемый пост)
Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints




--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
anatox91
Дата 5.12.2011, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

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



спасибо капитан очевидность, но вопрос был в том как преобразовать таблицы чтобы избежать данной ошибки

Цитата(anatox91 @  4.12.2011,  18:13 Найти цитируемый пост)
т.к. каскадное удаление и обновление нужно




--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
Zloxa
Дата 5.12.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(anatox91 @  5.12.2011,  12:39 Найти цитируемый пост)
 но вопрос был в том как преобразовать таблицы чтобы избежать данной ошибки

Ответ на этот вопрос - дан Вами же в старте топика.

Цитата(anatox91 @  5.12.2011,  12:39 Найти цитируемый пост)
каскадное удаление и обновление нужно

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

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


Это сообщение отредактировал(а) Zloxa - 5.12.2011, 13:15


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Zloxa
Дата 5.12.2011, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Если рассудить логически - матч - факт либо свершившийся, либо планируемый. Здесь это основная сущность учета. А клуб, получается - вспомогательная сущность, которая лишь раскрывает атрибуты участника матча. Разве это логично неявно удалять информацию о фактах, при редактировании вспомогательной сущности? Мне кажется более правильно - не позволять удалять ошибочно введенную информацию о клубе, если уже был зарегестрирован матч с участием этого клуба, т.е. каскады здесь вообще не к месту.

Это сообщение отредактировал(а) Zloxa - 5.12.2011, 14:15


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
anatox91
Дата 5.12.2011, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

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



да, вобщем вы правы, понял свою ошибку, я просто не до конца разобрался с этими каскадами


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


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

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


 




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


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

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