Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить данные (опять многие ко многим) / 9 сообщений из 9, страница 1 из 1
26.10.2005, 17:05
    #33345718
Nerian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
Вот допустим у нас есть объект фильм. Он имеет имя, некоторые другие обычные свойства (дата выхода, длительность), а так же он имеет несколько актёров, и к тому же фильм может быть сразу в нескольких жанрах.
один фильм - много актёров.
один актёр - много фильмов.
один фильм - много жарнов.
один жанр - много фильмов.

Получаеться нужно создать что то вроде:
films(id,name), genres(id,name), actors(id,name);
films_genres(id,fid,gid), films_actors(id,fid,aid);

Но если делать всё по такому принципу как можно выбрать информацию
о допусти 10 первых фильмов (в алфавитном порядке), и информацию о них
какие актёры в них играли и какие жанры исполняли?

У меня получаеться выбирать что то вроде:
фильм1/жанр1/актёр1
фильм1/жанр1/актёр2
фильм1/жанр2/актёр1
фильм1/жанр2/актёр2
фильм2/жанр3/актёр1
...
и тд. Тоесть получаеться данные скрешиваються, и чем больше жанров у одного фильма, или чем больше актёров у фильма, тем сложнее и непонятнее это всё выводиться. Тоесть каждая отдельная строка не несёт законченной информации о нужном фильме :(
А если ещё одно/два поля многие ко многим? То это будет ещё большей чушью, и ещё сложнее будет приводить результат к нормальному виду?
...
Рейтинг: 0 / 0
26.10.2005, 17:12
    #33345743
hgfd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
Как выглядит "нормальный вид" в данном контексте?
...
Рейтинг: 0 / 0
26.10.2005, 17:24
    #33345787
Nerian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
фильм1/актёр1,актёр2,...,актёрN/жанр1,жанр2,...,жанрN/
...
Рейтинг: 0 / 0
26.10.2005, 17:45
    #33345853
рпорп
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
Nerianфильм1/актёр1,актёр2,...,актёрN/жанр1,жанр2,...,жанрN/
Слегка помучившись, сможете получить "нормальный" вид из той схемы данных, которую Вы описали - многие-ко-многим через ассоциативные таблицы.
...
Рейтинг: 0 / 0
27.10.2005, 07:11
    #33346468
mir
mir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
...
Рейтинг: 0 / 0
28.10.2005, 11:10
    #33349367
Valentyn Pidburtnyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
NerianА если ещё одно/два поля многие ко многим? То это будет ещё большей чушью, и ещё сложнее будет приводить результат к нормальному виду?
В чем сложность реализовать то, что говорит рпорп??

Таблицы:
films(id, name)
actors(id, name)
genres(id, name)
filmactor(film_id, actors_id)
filmgenre(film_id, genre_id)
...
Рейтинг: 0 / 0
28.10.2005, 11:31
    #33349423
рпорп
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
Valentyn PidburtnyiВ чем сложность реализовать то, что говорит рпорп??

Таблицы:
films(id, name)
actors(id, name)
genres(id, name)
filmactor(film_id, actors_id)
filmgenre(film_id, genre_id)
Рпорп не говорит о сложности. Рпорп говорит, что автору придется слегка помучиться, чтобы получить представление, которое нужно автору из предложенной им (и Вами) схемы данных - сложение строк, чтобы получилось не
фильм1жанр1актёр1фильм1жанр1актёр2фильм1жанр2актёр1фильм1жанр2актёр2фильм2жанр3актёр1
а

фильмактерыжанрыфильм1актёр1,актёр2,...,актёрNжанр1,жанр2,...,жанрN
...
Рейтинг: 0 / 0
28.10.2005, 13:07
    #33349723
Valentyn Pidburtnyi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
рпорпРпорп не говорит о сложности. Рпорп говорит, что автору придется слегка помучиться, чтобы получить представление
Дык, это уже зависит от СУБД. Где-то будет просто на сиквеле это сделать, где-то сложно. Во втором случае лучше передать право собирания строки клиенту...
...
Рейтинг: 0 / 0
28.10.2005, 13:42
    #33349839
рпорп
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно хранить данные (опять многие ко многим)
Valentyn PidburtnyiДык, это уже зависит от СУБД. Где-то будет просто на сиквеле это сделать, где-то сложно. Во втором случае лучше передать право собирания строки клиенту...
Рпорп не может не согласиться. Скорее нормализованный подход будет лучше, чем хранить в одной таблице типа
Фильм Актеры ЖанрыЧужой совсем не против хищника А.Шварцнеггер; С. Уивер Эротика; триллер
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить данные (опять многие ко многим) / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]