Руслан
Новичок
Организация внутренних сообщений в системе (аналог почты)
Вопрос возможно несколько теоретический, но возник он как это часто бывает из практической необходимости.
Итак задача, реализовать в системе (по сути большой непубличный сайт) внутренню почту. То есть переписка между пользователями сайта.
Делаю через одну таблицу (не знаю верно ли решил), структура кратко следующая.
id | датавремя | от | кому | тема | текст | вложение | статус |
Когда делаем вывод исходящих - всё просто. Проверяем соотвествие id пользователя в поле "от" и сессии и вытаскиваем на свет божий тему и всё пр. А вот как со входящими? Есть же возможность отправки многим пользователям (причём это предполагается часто использовать). В поле "кому" при отправке многим пользователям, их id записываются через запятую-пробел, т.е. так "1, 3, 6, 43, 53". Понятно, что проверять на точное соответсвие id в сессии и значения поля "кому" бессмыслено. Мне сразу подумалось, что можно попробовать делать приблизительное соответствие, и по найденым строкам потом разбивать эти id в массив через explode b проверять уже на точное соответствие с id пользователя в сессии.. Но выглядит это, мягко говоря, вычурно. Внутренний голос какбэ намекает мне, что возможно я организовал базу неверно под эту задачу.
Может кто сталкивался с подобным, какие решения реализуют стандартно и в каких случаях?
Вопрос возможно несколько теоретический, но возник он как это часто бывает из практической необходимости.
Итак задача, реализовать в системе (по сути большой непубличный сайт) внутренню почту. То есть переписка между пользователями сайта.
Делаю через одну таблицу (не знаю верно ли решил), структура кратко следующая.
id | датавремя | от | кому | тема | текст | вложение | статус |
Когда делаем вывод исходящих - всё просто. Проверяем соотвествие id пользователя в поле "от" и сессии и вытаскиваем на свет божий тему и всё пр. А вот как со входящими? Есть же возможность отправки многим пользователям (причём это предполагается часто использовать). В поле "кому" при отправке многим пользователям, их id записываются через запятую-пробел, т.е. так "1, 3, 6, 43, 53". Понятно, что проверять на точное соответсвие id в сессии и значения поля "кому" бессмыслено. Мне сразу подумалось, что можно попробовать делать приблизительное соответствие, и по найденым строкам потом разбивать эти id в массив через explode b проверять уже на точное соответствие с id пользователя в сессии.. Но выглядит это, мягко говоря, вычурно. Внутренний голос какбэ намекает мне, что возможно я организовал базу неверно под эту задачу.
Может кто сталкивался с подобным, какие решения реализуют стандартно и в каких случаях?