Множественные записи в MySQL

Print RSS
242

Р
Author
Пришелец
0
Помогите решить задачку) Суть ее заключается в том, что я создал таблицу в бд и первый ее столбец это Ник или ID юзера, а дальше...мммм...он например будет добавлять названия фильмов которые посмотрел, и нужно что бы каждое название добавлялось либо в отдельную ячейку (проблема здесь в том что один юзер добавит 5 фильмов а другой 1500, мне кажется что не верно было бы создавать вручную 1500 ячеек), либо в одну но что бы была возможность запросить любое из значений ячейки в отдельности, в виде списка, отсортировать ну и так далее...

Добавлено через 03:01 сек.
Банальный пример "Вконтакте" у пользователей бывает огромное количество песен на странице есть маньяки залившие и 5000 песен, но я не думаю, что в бд присутствует 5000+ ячеек для записи музыки
Changed: Рюук (01.04.2011 / 22:29)

2000 лет д.н.э.
0
Отдельная таблица фильмов с ключем на ид юзера
Р
Author
Пришелец
0
Хорошо а если список динамически обновляется?

Добавлено через 04:50 сек.
То есть я или модеры добавляем новые фильмы то мне придется постоянно ее обновлять...
Changed: Рюук (01.04.2011 / 22:56)
П

Пришелец
0
"Хорошо а если список динамически обновляется?"
а из-за этого могут возьникнуть проблемы?
А

Пацак
0
ramzes (1 Апреля 2011 / 21:50)
Отдельная таблица фильмов с ключем на ид юзера

Кстати, так и не выяснил этот спорный вопрос.
Лучше создать таблицу вида
user_id | film_id
и множить тысячами записи (в таком случае будет очпуительный запрос с выборкой фильмов, которые помсотрел пользователь для общей статистики, и одинарный селект для проверки смотрел ли юзер этот фильм)
или же
user_id | all_films_id_with_separator
Где во второе поле записывать через определенный сепаратор ИД всех просмотренныхх фильмов (Например
admin | :2:234:3543:23:16:2
)
тогда выбор всех фильмов будет не проблематичным, explode второе поле и все (можно даже в запросе "LEFT JOIN films ON films_table.films_ids_field LIKE (%:films.id:%)"); )
Но тогда при выборе пользователей, которые смотрели какой либо фильм снова получится громоздкий селект да еще и с LIKE.

Кто какие решения использует?
Changed: Анатолий (02.04.2011 / 17:02)
П

Пришелец
0
Суть вопроса в спсике просмотренных фильмов или добвке видео? Разумеется, что можно и в одной ячейке хранить ПРОСМОТРЕННЫЕ фильмы, достаточно будет хранить их через запятую а при выводи списка SELECT `name`, `info` FROM `video` WHERE `id` IN ($ListVideo)
где $ListVideo - данные ячейки пользователя
А

Пацак
0
suhonok (2 Апреля 2011 / 16:26)
где $ListVideo - данные ячейки пользователя

А я всегда думал, что внутри `id` IN ($query) должен стоять SQL запрос, и IN возвращает true когда `id` является одним из результатов запроса $query O_o

2000 лет д.н.э.
0
5. dekameron, еще одна таблица, просмотры
записи можно чистить, можно кешировать в файл для каждого пользователя отдельно,
тип информации не очень актуален, не стоит его лепить в основную таблицу
чем реже она изменяется тем лучше кешируется вроде

Добавлено через 01:43 сек.
SinigamiRuyk (1 Апреля 2011 / 22:54)
Хорошо а если список динамически обновляется?
А есть не динамическая выборка данных?
в чем суть вопроса?
П

Пришелец
0
7. dekameron, при WHERE `id` IN() вернёт все записи из списка
Р
Author
Пришелец
0
5. dekameron, спасибо думаю воспользуюсь твоей моделью, а то все сообразить не мог как это организовать)))
Stickers / Tags / Rules / Top topics / Top Posts / Search