Как лучше поместить массив в бд?

Demiurg

Guest
>А во вторых, не лучше ли будет хранить в бд не, например, "комедия" - 7 символов, а всего-лишь 1,
не лучше. хранить в базе внешние данные - черевато последствиями.
 

Falc

Новичок
Bboy
Взрослые дяди тебе сказали как сделать в самом начле не разводи тут флейма и сделай как правильно.
 

Bboy

Новичок
Originally posted by Demiurg
>А во вторых, не лучше ли будет хранить в бд не, например, "комедия" - 7 символов, а всего-лишь 1,
не лучше. хранить в базе внешние данные - черевато последствиями.
Что такое "вненшние данные" и какие последствия?:eek:
 

Demiurg

Guest
Ну вот предположим засунешь ты свой массив в базу. Передашь потом базу кому-нибудь, он вытащит этот массив и что ? Жанр фильма 1,5,7 ? хороший жанр.
 

Bboy

Новичок
Originally posted by Demiurg
Ну вот предположим засунешь ты свой массив в базу. Передашь потом базу кому-нибудь, он вытащит этот массив и что ? Жанр фильма 1,5,7 ? хороший жанр.
Мммм, ясно, спасибо за просвещение:)
 

su1d

Старожил PHPClubа
если кол-во жанров менее 32, то вполне можешь использовать INT UNSIGNED, назначая по биту на каждый жанр.
в таком случае выборка фильмов одного жанра будет проводиться с битовой арифметикой: WHERE movie_genre & 2 > 0
...двух одновременно: WHERE movie_genre & 3 > 0
 

ForJest

- свежая кровь
Насчёт правильности. Если это просто справочное поле, по нему не будет производится поиск и т.п. - то лучше запихать в одно поле, как ему и хочется. Потому что выбрать фильмы с жанрами превратится в достаточно сложную операцию.
Дарю идею. Жанров всего восемь. значит возможных комбинаций фильмов будет 256.
1. Заводишь себе таблицу - жанры - там хранишь собственно наименования жанров.
2. Делаешь таблицу - жанры фильма - туда запихиваешь все возможные комбинации. Представляешь себе что номер жанра - это номер бита. Соответственно если он установлен - то жанр присутствует в списке - если нет - не присутствует.
3. В таблице с фильмами хранишь id жанра-фильма.
Выборка существенно упрощается.
4. При изменении таблицы жанры меняешь и таблицу жанры фильма.
Это получается кэширование результатов обработки. Слегка страдаем дисковое пространство, зато повышается производительность. При восьми жанрах можно себе позволить.
 

su1d

Старожил PHPClubа
Demiurg, может быть. но я почему-то SET никогда нигде не юзаю. даже и не знаю почему. предрассудки наверное какие-то.

ForJest
хмм... а когда их (вдруг!.. такое почему-то всегда случается "вдруг!") станет 32, нужно будет забивать таблицу 65535-ю значениями? =)
 

ForJest

- свежая кровь
Автор оригинала: su1d
ForJest
хмм... а когда их (вдруг!.. такое почему-то всегда случается "вдруг!") станет 32, нужно будет забивать таблицу 65535-ю значениями? =)
Нет, это если их станет 16-ть то 65535 :) иначе же... Ну в общем один, два три - много :)
 
Сверху