каждого фильма несколько жанров?

fizot

Новичок
а вот такой вопросик, как бы вы посоветовали ему делать для каждого фильма несколько жанров? в одно поле genre_id скажем заносить несколько ID через пробелы???а потом вынимать каким-нить explodeм ?
 

fizot

Новичок
Автор оригинала: Фанат
делаешь дополнительную таблицу
film_id | genre
блин, а я в подобных ситауциях просто делаю implode всех значений в одно поле и мне кажется так более оптимально. Ты бы не мог более подробнее объяснить, чем твой способо лучше?
 

Фанат

oncle terrible
Команда форума
это не имеет смысла.
когда ты столкнёшься с проблемами своего способа - тогда всё поймёшь и без объяснений.
а до тех пор можно убить гору времени, но ничего тебе не объяснить.

Если так интересно - читай книжки про БД. Там всё написано
 

Анатолий

Новичок
fizot


Фанат, прав. Читай книжки! Здесь у тебя в базе данных будет отношение многие-ко-многим. А для этого нужно использовать таблицу, как я называю, таблицу связи.
 

fizot

Новичок
Автор оригинала: Фанат
это не имеет смысла.
когда ты столкнёшься с проблемами своего способа - тогда всё поймёшь и без объяснений.
а до тех пор можно убить гору времени, но ничего тебе не объяснить.

Если так интересно - читай книжки про БД. Там всё написано
ОК, буду юзать связанные таблицы, хотя честно говоря не раз юзал свой метод и не сталкивался с проблемами. Не мог бы ты хотя бы в кратце описать ситуацию при которой может возникнуть проблема?было бы очень интересно подумать на эту тему
 

Анатолий

Новичок
fizot
А что тут думать...
Например, тебе нужно вывести все книги данного жанра... Для этого при связанных таблицах понадобиться всего один запрос, а при твоем подходе, еще и программой лопатить нужно будет (explodeм).
 

alpine

Новичок
Анатолий
Если я правильно понял, Фанат как раз против таблицы связей, тоесть films_id | genre_id и соответственно против связи многие-ко-многим и предложил заменить связью один-ко-многим(один фильм в одной таблице много жанров в другой связанных с этим фильмом)
 

magic

lancer
film_id | genre не подходит.

Тут нужно film_id | genre_id и отдельная таблица для жанров.
 

magic

lancer
В таблице связей ID не нужен, т.к. ключ уже существует - это disk_id + ganr_id
 

Sherman

Mephi
в тех случаях, когда «кеш id» позволяет избежать пары-тройки left-join-ов:)

в денормализации нет ничего криминального...
 

magic

lancer
Приведите пожалуйста реальный пример пары-тройки left join'ов для таблицы с названиями жанров :)
 

Sherman

Mephi
Я говорил в принципе. Но и тут можно извратиться:

film
genre
film_genre
aktor
film_actor

Вот выбрать скажем карточку фильма. А ведь есть еще куча другой инфы.
 
Сверху