Как реализовать обмен сообщениями между пользователями
Как реализовать обмен сообщениями между пользователями? Лучше использовать БД? Создать таблицу для каждого пользователя? У кого есть опыт помогите, или если вы использовали ЦМС поделитесь как там реализовано?
< ̄`ヽ、 /  ̄ >
ゝ、 \ /⌒ヽ,ノ /´
ゝ、 ( ( ͡◉ ͜> ͡◉) /
> ,ノ
℧ ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
ゝ、 \ /⌒ヽ,ノ /´
ゝ、 ( ( ͡◉ ͜> ͡◉) /
> ,ノ
℧ ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
если что-то типа личных сообщений (т.е. общение 1 на 1),
то понадобится собственно таблица пользователей (ид пользователя, имя пользователя, остальные поля по вкусу..)
и таблица сообщений (ид, дата, ид автора сообщения, ид адресата, текст сообщения)
если что-то типа простого чата,
то таблица сообщений будет проще (ид, дата, ид автора сообщения, текст сообщения)
то понадобится собственно таблица пользователей (ид пользователя, имя пользователя, остальные поля по вкусу..)
и таблица сообщений (ид, дата, ид автора сообщения, ид адресата, текст сообщения)
если что-то типа простого чата,
то таблица сообщений будет проще (ид, дата, ид автора сообщения, текст сообщения)
А я бы оставил поле ИД реципиента, можно было бы заюзать под приватные сообщенияDistructor писал(а):если что-то типа простого чата,
то таблица сообщений будет проще (ид, дата, ид автора сообщения, текст сообщения)
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"
а каким образом считать сообщения которые пользователь уже прочитал что бы выдавать число новых сообщений, разве поиск среди всех id не будет долгим? на этом форуме именно так реализовано?и таблица сообщений (ид, дата, ид автора сообщения, ид адресата, текст сообщения)
< ̄`ヽ、 /  ̄ >
ゝ、 \ /⌒ヽ,ノ /´
ゝ、 ( ( ͡◉ ͜> ͡◉) /
> ,ノ
℧ ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
ゝ、 \ /⌒ヽ,ノ /´
ゝ、 ( ( ͡◉ ͜> ͡◉) /
> ,ノ
℧ ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
создаешь дополнительное поле, где будет записываться прочтено ли сообщение или нет, а функцию можно реализовать так:а каким образом считать сообщения которые пользователь уже прочитал
когда открываешь сообщение выполняется запрос и значение поля изменяется с 1 на 0, а потом подсчитываешь количество строк где значение =1 ( 1 т.е сообщение не прочитано) .
Спасибо, я правильно понимаю что надо сделать следующее
USER
id user pass name family male
--------------------------------------------------------------
1 masha **** имя фамилия ж
2 vasya **** имя фамилия м
3 petya **** имя фамилия м
4 anya ***** имя фамилия ж
5 misha **** имя фамилия м
--------------------------------------------------------------
Маша отправила Мише сообщение привет
Вася отправил Ане как дела
MESSAGE
--------------------------------------------------------------
id to ot message data status
1 5 1 привет 1.1.11 0
2 4 2 как дела 1.1.11 0
--------------------------------------------------------------
теперь аня входит и в базе начинается поиск по полю to где ид = 4 ?
ПРАВИЛЬНО? ))
USER
id user pass name family male
--------------------------------------------------------------
1 masha **** имя фамилия ж
2 vasya **** имя фамилия м
3 petya **** имя фамилия м
4 anya ***** имя фамилия ж
5 misha **** имя фамилия м
--------------------------------------------------------------
Маша отправила Мише сообщение привет
Вася отправил Ане как дела
MESSAGE
--------------------------------------------------------------
id to ot message data status
1 5 1 привет 1.1.11 0
2 4 2 как дела 1.1.11 0
--------------------------------------------------------------
теперь аня входит и в базе начинается поиск по полю to где ид = 4 ?
ПРАВИЛЬНО? ))
< ̄`ヽ、 /  ̄ >
ゝ、 \ /⌒ヽ,ノ /´
ゝ、 ( ( ͡◉ ͜> ͡◉) /
> ,ノ
℧ ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
ゝ、 \ /⌒ヽ,ノ /´
ゝ、 ( ( ͡◉ ͜> ͡◉) /
> ,ノ
℧ ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Вообще это минимальный набор полей, можно еще добавить дату получения, дату прочтения, ну и прочее для удобства.
По поводу названия полей: to и ot - это называется быдлокодинг Используй английский to from. Либо serder_id и recipient_id - так еще корректней.
По поводу названия полей: to и ot - это называется быдлокодинг Используй английский to from. Либо serder_id и recipient_id - так еще корректней.
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"