массив в ячейке или вспомогательная таблица...

Статус
В этой теме нельзя размещать новые ответы.

fafee

Постоялец
Регистрация
3 Окт 2008
Сообщения
92
Реакции
0
Добрый день. возникла проблема:
Есть пользователи с user_id и альбом с media_id каждого элемента, которые хранятся в соответствующей таблице. по умолчанию каждый пользователь может комментировать любую фотографию, но не может ответить на другой комментарий, то есть комментарии выстраиваются в столбик, а не в дерево.
Уведомления о новом комментарии отправляются только владельцу альбома.
Чтобы улучшить ситуацию, пришла в голову мысль сделать "подписку на комментарии для любого элемента". То есть пользователь ставит галку "подписаться на комменты" и уведомление приходит не только владельцу альбома, но и ему (такая возможность встроена в движки многих форумов).
А вот с тем как это реализовать вышла загвоздка. По идее, в таблице с media_id должно быть поле где будет массив, с user_id подписавшихся. Но тут возникает вопрос - может ли ячейка таблицы хранить массив и как потом по нему делать выборку.
Второй вариант - создать вспомогательную таблицу - с media_id по строкам и user_id по столбцам, где будут по умолчанию ноли, и единица, если пользователь подписался на комментарий. Тут опять вопрос - при большом количестве пользователей и фотографий, таблица будет немаленькая. И скорее всего нагрузка на сервер тоже. Может есть какой-то более изящный способ?..
php и mySQL только начинаю учить, буду благодарен любым советам. Cпасибо :)
 
Делать однозначно отдельную таблицу.
Только не надо писать в нее сразу все варианты. Зачем тебе это?
Есил какой-то пользователь подписывается на комментарии, то добавляешь запись в эту табличку: media_id, user_id.

В своем коде, при наступлении события постинга в альбом делаешь выборку из этой таблицы по полю media_id и рассылаешь полученным пользователям сообщения.
 
Делать однозначно отдельную таблицу.
Только не надо писать в нее сразу все варианты. Зачем тебе это?
Есил какой-то пользователь подписывается на комментарии, то добавляешь запись в эту табличку: media_id, user_id.
В своем коде, при наступлении события постинга в альбом делаешь выборку из этой таблицы по полю media_id и рассылаешь полученным пользователям сообщения.
Я так в итоге и сделал, спасибо. Просто вечером какая-то дурь в голове была;)
 
Ну ниче-ниче, бывает такое ;-)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху