Отображение состояния сообщения: чтение и непрочитанное (отличается от других пользователей) в системе обмена сообщениями PHP / MySQL

Я показываю статус сообщения, который отличается от каждого пользователя. Предположим, что user1 отправляет сообщение пользователю2, статус сообщения пользователя1 затем устанавливает read , а user2 установлено как unread по умолчанию. Он будет обновлен после того, как пользователь2 user2 сообщение.

Таким образом, в этом случае сообщение пользователя1 (из папки «Входящие») будет иметь шрифт серого цвета, который указывает, что сообщение настроено на read (поскольку user1 – это тот, кто отправляет). С другой стороны, user2 имеет полужирный шрифт, который указывает, что сообщение unread .

Вот первая структура таблицы:

 message(messageid, fromid, toid, message, timestamp, status) 

Проблема здесь в том, что если я обновляю статус сообщения для read , он влияет на другую сторону ( user2 ). Поэтому я добавляю еще один столбец, который будет отличать статус от user1 и user2 :

 message(messageid, fromid, toid, message, timestamp, from_status, to_status) 

Здесь from_status для fromid и to_status для toid . Но у меня возникла проблема с тем, как использовать эти значения для отображения состояния.

Код PHP, который я использую во время первой попытки, таков:

 <?php $id = $_SESSION['id']; $query = mysql_query("SELECT m.* FROM message m LEFT JOIN message m2 ON ( (m.fromid=m2.fromid AND m.toid=m2.toid) OR (m.fromid=m2.toid AND m.toid=m2.fromid) ) AND m.timestamp<m2.timestamp WHERE (m.fromid='$id' OR m.toid='$id') AND m2.toid IS NULL ORDER BY timestamp DESC"); while ($message = mysql_fetch_array($query)) { if ($message['status'] === 'unread') { // bold font style will be applied } else { // gray-colored font will be applied } } ?> 

(Запрос получает каждый разговор от каждого пользователя с последним разговором.)

Этот код отлично работает для основного пользователя, который является user1 , но влияет на другую сторону, которая считает, что сообщение, полученное от пользователя2, настроено на read или unread .

Итак, у меня возникли проблемы с тем, что делать с измененной таблицей, имея по 2 отдельных status для каждого пользователя. Как я могу это сделать?