Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 4
1

Отметка о прочтённом сообщении. Не знаю как это называется правильно, поэтому не могу написать правильный заголовок

20.10.2013, 16:13. Показов 1026. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Как видно из заголовка - я не могу правильно написать вопрос. А это, возможно. привело бы меня к решению в гугле за секунды.
Хочу понять, как в БД организуются "множественные привязки". Итак. Есть система, в которой заведено N пользователей. В системе появляется сообщение. Сообщение в статусе "не прочитано" для каждого пользователя. Один из них прочитал сообщение. Как сохранить состояние "прочитано" для конкретного пользователя?
В случае, есть N=1, то всё просто. Когда N>1, я вижу 2 решения:

1) завести табличку message_readed с полями message_id, user_id, валить туда всё в кучу и селектить каждый раз для каждого сообщения
2) для каждого юзера в табличке messages завести поле readed_M, где M будет ИД юзера. При создании нового пользователя добавлять ещё одно поле.

Я не силён в администрировании БД, но оба варианта кажутся мне дико кривыми. Красивое решение - для каждого сообщения иметь возможность привязать произвольное количество юзеров. Для уточнения статуса сообщения проверять, есть ли привзяка к юзеру. Говоря "привязать", "привязка" я не знаю, что я имею ввиду.

Собственно, вопрос: как такие вещи делаются "красиво"?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2013, 16:13
Ответы с готовыми решениями:

Вернуть строку в режим ввода (не знаю как это правильно называется)
Добрый день! Значит, проблема: у меня есть программа, что-то из серии калькулятора множеств. Вот...

Как сделать ограничение на перемещение? Или я не знаю как называется это правильно. (См. внутри)
Если нажимать на кнопки ВПРАВО ВЛЕВО ВВЕРХ ВНИЗ робот Петька перемещается соответственно этим...

Это яйца (икра, не знаю как называется) улиток?
Что это?

Нужна помощь по скрипту/макросу(не знаю как правильно называется)
Вбрела в голову идея. Для форума forum_name сделать автообновление аватара() и не знаю как...

5
1928 / 1163 / 423
Регистрация: 31.05.2012
Сообщений: 4,110
20.10.2013, 18:07 2
Отношение многие-к-многим. Заводится промежуточная таблица с внешними ключами к юзерам и сообщениям. Сам факт наличия такой записи для конкретных юзера и сообщения - сообщение прочитано. Нет записи - сообщение не прочитано. Можно, например, туда еще и дату втулить - когда прочитано
0
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 4
20.10.2013, 19:32  [ТС] 3
Цитата Сообщение от Аватар Посмотреть сообщение
Отношение многие-к-многим. Заводится промежуточная таблица с внешними ключами к юзерам и сообщениям. Сам факт наличия такой записи для конкретных юзера и сообщения - сообщение прочитано. Нет записи - сообщение не прочитано. Можно, например, туда еще и дату втулить - когда прочитано
Это не первый вариант, описанный мной?
0
1928 / 1163 / 423
Регистрация: 31.05.2012
Сообщений: 4,110
20.10.2013, 19:39 4
В общем-то первый, только не нужно сразу по созданию сообщения туда все валить, а по мере их прочтения юзерами. Второй вариант из разряда..., короче не айс
0
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 4
20.10.2013, 20:16  [ТС] 5
Цитата Сообщение от Аватар Посмотреть сообщение
не нужно сразу по созданию сообщения туда все валить
Разумеется. Эх, а я ждал что меня заклюют и дадут ссылку на документацию, где всё придумали за меня
0
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
20.10.2013, 23:37 6
uscr, у себя на сайте поступаю почти аналогично описанному Аватар-ом, только наоборот:
в табличку msg_usrs (many-to-many) сразу закидываю кому надо данное сообщение прочитать. У каждого юзера по таймеру ajax-ом тыкается, нет ли чего с его id-ом, если есть - вылезает сбоку "вам сообщение". По мере прочитывания записи удаляются. Это позволяет не сильно захламалять табличку. Если нет нужды хранить точное время прочтения - вполне себе вариант.
0
20.10.2013, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2013, 23:37
Помогаю со студенческими работами здесь

Как сделать, не знаю как это называется :)
Есть CMS где в tpl файле пишутся например {IP} и это соответственно выводит IP Как сделать так...

Как это правильно называется
ИмяИнтерфейса название= new КлассКоторыйРеализует(); Это ведь полиформизм в каком то роде? По...

Как это правильно называется?
Добрый день, как это правильно называется (хочу почитать про это поподробнее в интернете, но не...

Задание по программированию: я не знаю темы для ее решения, поэтому точнее назвать не могу :(
Доброго времени суток. Обращаюсь ко всем за помощью - я не могу разобраться в новой теме, на...

Как это реализовать? И как это правильно называется?
Всем привет. Хочу достигнуть такого эффекта как на этом сайте http://www.kocha.com.au/ Суть...

Получение всех возможных способов получения числа сложением(не знаю как правильно это назвать, зайдите и посмотрите)
У меня задание написать программу которая будет выписывать все возможные способы получить число N. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru