Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 222
от 21.02.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 396, Экспертов: 55
В номере:Вопросов: 1, Ответов: 2


Вопрос № 75840: Здравствуйте Уважаемые. Возник ворпрос конкретно по СУБД MySQL а именно. Я бы хотел знать, каких автором НАДО почитать, что бы понять как строить связки между таблицами. В Мускуле это "немного" гемморойно. Могу привести пример и приведу...

Вопрос № 75.840
Здравствуйте Уважаемые. Возник ворпрос конкретно по СУБД MySQL
а именно. Я бы хотел знать, каких автором НАДО почитать, что бы понять как строить связки между таблицами. В Мускуле это "немного" гемморойно. Могу привести пример и приведу его.
у меня есть несколько таблиц справочников. и нужно их связать, что бы можно было строить отношения "один ко многим".
Например у нас в базе tbl_uz
прописываються имена, фамии и ники регестрирубщихся.
В другой таблице прописываються, допустим, место учебы. tbl_uch.
А так как ученик может быть в двух школах учиться и даже в более, переводы из одного места в другое, смена города. то надо бы сделать связь. Не подскажете, наглядно, как лучше это сделать. Был бы при много благодарен. Так как логика не совсем мне понятна. Заранее благодарю.

Приложение:

Отправлен: 15.02.2007, 13:04
Вопрос задал: Чинга (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: KDV
Здравствуйте, Чинга!

Либо связь один ко многим - тогда в tbl_uch есть поле ID_u с ID_u из tbl_uz
Это значит что запись tbl_uch "принадлежит" записи tbl_uz , у которой соответсвенный ID_u
чей (запись tbl_uz) ID_u ты пропишешь в tbl_uch, с тем она и будет связана.
минус - для каждого tbl_uz ты сможешь задать любое количество tbl_uch, но для одного tbl_uch сможешь задать только одного tbl_uz. Обращаясь к твоему примеру - для каждого ученика конкретной школы тебе прийдется вводить новую запись об этой школе. А это плохо. посему:

Связь один ко многим. Создаешь таблицу с полями
ID_u_scholl, ID_u и ID_scholl.

Если ты хочешь сказать что ученик с ID_u = 5 учился в школе с ID_scholl - 12, то просто добавляешь в новую таблицу соответствующую запись.
ID_u_scholl - int (5) not null primary key,
---------
Делай, что должно, и будет что будет
Ответ отправил: KDV (статус: 3-ий класс)
Ответ отправлен: 15.02.2007, 13:21

Отвечает: Архангельский Андрей Германович
Здравствуйте, Чинга!

Классические книги по SQL - книги Мартина Грабера, в том числе там рассматриваются и эти вопросы
В данном случае я бы сделал так:

tbl_uz (
ID_u int (5) not null auto incriment primary key,
name varchar (15) not null,
passwd varchar (15) not null,
nick varchar (20) not null);

tbl_uch (
ID_scholl int (4) not null primary key,
gorod varchar (20) not null,
ulica varchar (15) not null);

tbl_Ref (
ID_u int(5) not null references tbl_uz on update cascade on delete cascade,
ID_scholl int(4) not null references tbl_uch on update cascade on delete cascade,
Primary key (ID_u,ID_scholl));

---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 15.02.2007, 13:33


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.45 beta от 20.02.2007
Яндекс Rambler's Top100

В избранное