решено: SQL (немного теории)

Модератор: Модераторы разделов

skillergti
Сообщения: 34
ОС: slackware

решено: SQL

Сообщение skillergti »

В процессе первичного ознакомления с базами данных, возник вопрос.
Допустим, у меня есть БД, в которой существуют 2 таблицы: Фильмы и Актёры.
Таблица фильмов включает в себя: название фильма, год выпуска, ID актёров и тд
Таблица актёров включает в себя: ID актёра, ФИО актёра, год рождения и тд

Так вот вопрос: неужели если я хочу ввести в одном фильме несколько актёров, мне нужно для каждого актёра делать свою строку?
Название: Фильм1 Год: 2009 ID актёра: 1
Название: Фильм1 Год: 2009 ID актёра: 2
....

Или это реализуется несколько другим способом?
В идеале, хотелось бы чтобы база содержала
Название: Фильм1 Год: 2009 ID актёра: 1,2,3
А таблица актёров:
ID: 1 ФИО: Пупкин1
ID: 2 ФИО: Пупкин2
ID: 3 ФИО: Пупкин3
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: решено: SQL

Сообщение rm_ »

Так вот вопрос: неужели если я хочу ввести в одном фильме несколько актёров, мне нужно для каждого актёра делать свою строку?

Можно так.
Можно создать третью таблицу, с соответствиями "фильм-актёр".
Можно найти и почитать хорошую книжку по SQL.)
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: решено: SQL

Сообщение serzh-z »

skillergti писал(а):
19.02.2009 17:57
Так вот вопрос: неужели если я хочу ввести в одном фильме несколько актёров, мне нужно для каждого актёра делать свою строку?
Нет, конечно.

Лучше сделать три таблицы. В одной - фильмы, в другой - актёры, в третьей - связка "фильм - актёр".

http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%...%80%D0%BC%D0%B0
http://citforum.ru/database/osbd/glava_23.shtml
Спасибо сказали:
skillergti
Сообщения: 34
ОС: slackware

Re: решено: SQL

Сообщение skillergti »

Спасибо большое. В общем и сам так думал сделать, но "товарищ преподаватель" смутил меня своим примером в методичке (там 2 таблицы, в одной из которых много раз повторяется одна и та же строка с изменённой одной ячейкой).
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: решено: SQL

Сообщение serzh-z »

skillergti писал(а):
19.02.2009 18:43
"товарищ преподаватель" смутил меня своим примером в методичке (там 2 таблицы, в одной из которых много раз повторяется одна и та же строка с изменённой одной ячейкой).
Жаль такого преподавателя. Это у него таблица в 1NF.
Спасибо сказали:
Аватара пользователя
Dmitrys
Сообщения: 131
ОС: Arch Linux

Re: решено: SQL

Сообщение Dmitrys »

skillergti
Зайдите сюда , почитайте, интересно и познавательно.
Спасибо сказали:
skillergti
Сообщения: 34
ОС: slackware

Re: решено: SQL

Сообщение skillergti »

Dmitrys писал(а):
19.02.2009 19:32
skillergti
Зайдите сюда , почитайте, интересно и познавательно.

Примного благодарен :)
Спасибо сказали:
mix1m
Сообщения: 187
ОС: openSUSE 11.2

Re: решено: SQL

Сообщение mix1m »

Еще, чтоб окончательно порадовать преподавателя, можно заюзать nested tables и уместить все в одной таблице фактически. Если база позволяет:)
Попытка - первый шаг к провалу (с) Гомер
Спасибо сказали: