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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация связи многие-ко-многим, Нужно ли создавать первичный ключ? 
V
    Опции темы
Scarlett
Дата 25.12.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Deniz @  25.12.2007,  10:00 Найти цитируемый пост)
Scarlett, не описав проблему и предметную область полностью (что это за связь) Вы и получили такие ответы.


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

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





PM MAIL   Вверх
ZMaximI
Дата 26.12.2007, 10:32 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 18.5.2004
Где: Украина, г. Харьк ов

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



Scarlett, вообще-то архитектура многие-ко-многим не предусматривает никаких промежуточных таблиц.
Не следует этого делать, в такой таблице просто нет надобности.

Было бы очень неплохо увидеть структуру таблиц.


--------------------
<удалено администрацией форума>
PM MAIL WWW ICQ   Вверх
skyboy
Дата 26.12.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(ZMaximI @  26.12.2007,  09:32 Найти цитируемый пост)
 вообще-то архитектура многие-ко-многим не предусматривает никаких промежуточных таблиц.

если я тебе скажу, что под "промежуточной таблицей" товарищ Scarlett подразумевает таблицу, хранящую собственно связи, ты повторишь свои слова про то, что такая таблица не нужна?  smile 
PM MAIL   Вверх
ZMaximI
Дата 26.12.2007, 10:50 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 18.5.2004
Где: Украина, г. Харьк ов

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



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


--------------------
<удалено администрацией форума>
PM MAIL WWW ICQ   Вверх
Akina
Дата 26.12.2007, 11:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Цитата(ZMaximI @  26.12.2007,  11:50 Найти цитируемый пост)
связи должны храниться в самих таблицах, а не в промежуточной

Что-то не понял... как это сделать без денормализации?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ZMaximI
Дата 26.12.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 18.5.2004
Где: Украина, г. Харьк ов

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



Для этого есть вторичные ключи ....


--------------------
<удалено администрацией форума>
PM MAIL WWW ICQ   Вверх
Scarlett
Дата 26.12.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 26.12.2007,  11:10)
Цитата(ZMaximI @  26.12.2007,  11:50 Найти цитируемый пост)
связи должны храниться в самих таблицах, а не в промежуточной

Что-то не понял... как это сделать без денормализации?

вот-вот...
и я о том же smile

а пример связи:
например, есть таблица прав и есть таблица ролей.
роль может включать себя несколько прав
так и одно право может принадлежать нескольким ролям.

либо есть служащий и есть человек, которые его курирует
как у куратора может быть несколько курируемых служащих, так и у служащего одновременно может быть несколько кураторов (к любому из них он может подойти за вопросом).
PM MAIL   Вверх
Akina
Дата 26.12.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Цитата

В связях с отношением «многие-ко-многим» каждая строка в одной таблице связывается с несколькими строками во второй таблице и наоборот. Например, можно создать отношение «многие-ко-многим» между таблицами authors и titles. При этом каждый автор связывается со всеми своими книгами, а каждая книга связывается с каждым из соавторов. Создание связи с отношением «один-к-одному» привело бы к неверным результатом. В последнем случае каждому автору можно было бы сопоставить только одну книгу, а каждой книге только одного автора.

Связи с отношением «многие-ко-многим» создаются в базе данных с помощью промежуточных (связующих) таблиц. Связующая таблица содержит столбцы первичного ключа обеих связываемых таблиц. Столбцы первичного ключа каждой из связываемых таблиц связываются с соответствующими столбцами промежуточной таблицы. В учебной базе данных pubs на Microsoft SQL Server связующей таблицей является таблица titleauthor.

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ZMaximI
Дата 26.12.2007, 14:32 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 18.5.2004
Где: Украина, г. Харьк ов

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



не вижу смысла спорить ....
чуть позже выложу статью, как правильно организовать связь многие-ко-многим, не теорию ВАЗов, а реальную практику ...

Это сообщение отредактировал(а) ZMaximI - 26.12.2007, 14:33


--------------------
<удалено администрацией форума>
PM MAIL WWW ICQ   Вверх
Akina
Дата 26.12.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Цитата(ZMaximI @  26.12.2007,  15:32 Найти цитируемый пост)
чуть позже выложу статью

Ждем... тут выложишь, на форуме? 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Deniz
Дата 26.12.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

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



Цитата(ZMaximI @  26.12.2007,  17:32 Найти цитируемый пост)
чуть позже выложу статью, как правильно организовать связь многие-ко-многим

Ждем с нетерпением. Очень интересно будет почитать.




--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM 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.0835 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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