Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
есть таблицы при потытке создать связь между таблицей CPU и Assemble_PC выдает ошибку при попытке сохранить:
SQL
Таблица "CPU" успешно сохранена
Таблица "Assemble_PC"
- Не удается создать связь "FK_Assemble_PC_CPU".
Ошибка ADO: Introducing FOREIGN KEY constraint 'FK_Assemble_PC_CPU' on table 'Assemble_PC' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.

Из-за чего может быть такая ошибка?Если убрать каскадное обновление и удаление, то связь сохранится. Но ток смысла от этого мало. как ее можно исправить. все типы данных вроде бы соответствуют друг другу. Внешние ключи не могут быть нулевыми. Посмотрите пожалуйста. Прикладываю скриншот уже созданных связей...
27 май 11, 14:28    [10719828]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101


К сообщению приложен файл. Размер - 24Kb
27 май 11, 14:29    [10719835]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
В сообщении об ошибке все написано, почему.
27 май 11, 14:29    [10719839]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И вообще, мне совершенно непонятно наличие каскадных операций от справочников. Типа, улалили клиента, и хрен с ней, со всей его историей и документами, пусть летят в тар-тарары?
27 май 11, 14:31    [10719859]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Гавриленко Сергей Алексеевич
И вообще, мне совершенно непонятно наличие каскадных операций от справочников. Типа, улалили клиента, и хрен с ней, со всей его историей и документами, пусть летят в тар-тарары?
Ну м.б. еще каскадного удаления не настроено. Но даже если не настроено, то удалить из справочника запись будет проблематично...
27 май 11, 14:38    [10719939]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Владимир СА
Гавриленко Сергей Алексеевич
И вообще, мне совершенно непонятно наличие каскадных операций от справочников. Типа, улалили клиента, и хрен с ней, со всей его историей и документами, пусть летят в тар-тарары?
Ну м.б. еще каскадного удаления не настроено. Но даже если не настроено, то удалить из справочника запись будет проблематично...
Извиняюсь... Не дочитал...
Супер...
27 май 11, 14:40    [10719956]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Простите, а с чем именно эта таблица может конфликтовать?Мне кажется, что именно из-за того, что я попыталась обойтись без каскадного удаления и обновления, в последующем на более позднем этапе возникают ошибки. поэтому решила делать заново и разбираться, что да как, да почему....
27 май 11, 14:44    [10720001]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Proggirl
Простите, а с чем именно эта таблица может конфликтовать?Мне кажется, что именно из-за того, что я попыталась обойтись без каскадного удаления и обновления, в последующем на более позднем этапе возникают ошибки. поэтому решила делать заново и разбираться, что да как, да почему....
Socket_Type -> Assemble_PC: как раз multiple cascade path.
27 май 11, 14:46    [10720029]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
А по большому счету - всю модель в топку...
27 май 11, 14:48    [10720056]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
И что ж мне теперь делать....нельзя как-нибудь слегка подредактировав, избежать эту ошибку?
27 май 11, 14:59    [10720245]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
И что ж мне теперь делать....нельзя как-нибудь слегка подредактировав, избежать эту ошибку?

Ну так вот и "подредактируйте" вашу схему данных
27 май 11, 15:07    [10720346]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
П-Л
Guest
Если PK справочника - автоинкрементальный счетчик, то нужда в каскадном обновлении отсутствует. Каскадное обновление лучще запрещать.
27 май 11, 15:13    [10720434]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Убрала каскадное обновление, удаление для FK_SystemBoard_Socket_Type все сохраняется. тогда получается все связи с Socket_Type могут не содержать каскадного обновления\удаления и база данных ничего от этого не потеряет?
27 май 11, 15:22    [10720580]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
Proggirl,

Ну а какие такие ошибки, по вашему мнению, возникнут без каскадных удалений?
27 май 11, 15:35    [10720718]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
П-Л
Guest
Что вы вкладываете в понятие потеряет ? Можно скаазть, что при запрете каскадного удаления вы приобретаете бОльшую надежность хранения данных. Есили ввели какой-то мусор, его можно быстро удалить. Если успели повесить на него дополнительные данные - вам придется потратить усилия на их расчистку.

Придумайте кейс, когда потребуется изменить значение автоинкрементального PK в спраовчнике. И как это сделать с клиента.
27 май 11, 15:37    [10720744]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
ну т.е. все равно если я добавлю новый сокет, то он будет виден в SystemBoard?
27 май 11, 15:38    [10720764]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
ну т.е. все равно если я добавлю новый сокет, то он будет виден в SystemBoard?

Каскадных добавлений не существует
27 май 11, 15:40    [10720775]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Просто нам в универе этой сути не рассказали, что даже в голову не могло прийти, что связь вообще без этого можно создать. Так и говорили нам, что это позволяет при добавление в табл socket видеть новые сокеты в SystemBoard. P.s.таблицы свои для примера добавила:). спасибо вам огромное, теперь я стала чуточку умнее:)
27 май 11, 15:51    [10720867]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
Так и говорили нам, что это позволяет при добавление в табл socket видеть новые сокеты в SystemBoard. P.s.таблицы свои для примера добавила:). спасибо вам огромное, теперь я стала чуточку умнее:)

Видеть записи в таблице позволяет select
А связь по внешнему ключу выполняет совершенно другую функцию
Внимательнее слушайте лекции
27 май 11, 15:53    [10720890]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Proggirl
Просто нам в универе этой сути не рассказали, что даже в голову не могло прийти, что связь вообще без этого можно создать. Так и говорили нам, что это позволяет при добавление в табл socket видеть новые сокеты в SystemBoard. P.s.таблицы свои для примера добавила:). спасибо вам огромное, теперь я стала чуточку умнее:)
Либо вы не так поняли преподавателя, либо преподаватель слабо разбирается в предмете :) Вот, почитайте -- Ссылочная целостность
27 май 11, 15:58    [10720945]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Может быть я его и не правильно поняла. но только я не одна такая. все в группе когда он задавал вопросы на эту тему объясняли это именно так. Может быть он неправильно воспринимал эти ответы. Но он никого не исправил....Надеюсь, что он просто не правильно понял...
27 май 11, 16:32    [10721297]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Glory
Member

Откуда:
Сообщений: 104751
Proggirl
Может быть я его и не правильно поняла. но только я не одна такая. все в группе когда он задавал вопросы на эту тему объясняли это именно так. Может быть он неправильно воспринимал эти ответы. Но он никого не исправил....Надеюсь, что он просто не правильно понял...

И поставил всем 5/зачет ? Или 2/незачет ?
27 май 11, 16:41    [10721387]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
Это была сдача лаб. он их принимал. ну наверное все таки мы его неправильно поняли в первый раз, а он в последующие нас. мужик он вроде умный(я на это очень сильно надеюсь)... спасибо за ссылку....
27 май 11, 16:46    [10721429]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101
тут у меня вопросик возник. есть еще таблицы Basket, sale. Basket-будет временной таблицей. а sale- будет хранить, все когда либо совершенные продажи.может я пока не до конца продумала их структуру. но хотелось бы спросить суть. Дело вот какое: я хочу чтобы покупатель мог в Accese в формах товаров- SystemBoard, CPU выбрать интересующий товар(сделаю кнопки рядом с каждой записью) и этот товар добавится в таблицу Basket. Как вы заметили таблицы у меня для товаров разные. я хочу сделать конкатенацию для всех необходимых полей товара в info и хранить старый ID из таблицы товаров в ID_old. мне для этого нужно будет связать ID_old со всеми ID товаров?
27 май 11, 16:57    [10721565]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Proggirl
Member

Откуда:
Сообщений: 101


К сообщению приложен файл. Размер - 3Kb
27 май 11, 16:57    [10721570]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить