Лучший способ создать многопользовательскую систему в PHP
В настоящее время я работаю над мобильным приложением, которое позволяет просить друзей для избранных, это интерфейс HTML5 и PHP-сервер. Я застрял в том, что лучший способ - создать систему уведомлений, тем более схему базы данных, чем сам фактический код.
Поток мобильного приложения выглядит следующим образом:
- Пользователь запрашивает услугу
- Пользователь может выбрать; уведомлять всех друзей, уведомлять любимых друзей или друзей друзей друзей.
- В зависимости от того, что пользователь выбрал, люди уведомляются
Каков наилучший способ сделать это в PHP и MySQL? Я не прошу кого-нибудь написать мне PHP-код, а скорее наметить наиболее идеальную схему таблиц и полей MySQL вместо этого, поскольку именно это я сейчас застрял. Заранее благодарим за помощь.
Ответы
Ответ 1
Вы можете создать таблицу уведомлений, например:
from_user | to_user | notification | seen
а затем всякий раз, когда вы хотите уведомить пользователя, вы просто добавляете запись с необходимой информацией и устанавливаете seen
в 0
/false
.
Затем, когда пользователь читает уведомление, вы устанавливаете этот параметр на 1
/true
.
Пример:
from_user | to_user | notification | seen
- - - -
Пользователь john уведомит пользователя jeff:
from_user | to_user | notification | seen
john jeff whatever.. 0
Пользователь jeff прочитал уведомление:
from_user | to_user | notification | seen
john jeff whatever.. 1
Ответ 2
Почему бы не просто перечислить все уведомления в таблице с названием "уведомления"
id | user_id | from_user_id | notification
- id = идентификатор уведомления
- user_id = кто является уведомлением?
- from_user_id = кто отправил уведомление?
- уведомление = сообщение
Затем в качестве псевдокода:
// Create a notification from User A to User B
$this->db->insert ('notifications', array ('user_id' => $friends_id, 'from_user_id' => $current_user_id, 'notification' => $message));
// The meanwhile, on your home page or somewhere, wherever you want to display notifications
$this->db->where ('user_id', $current_user_id)
$notifications = $this->db->get ('user_id');
foreach ($notifications as $notification)
{
// Display the notification as needed
// Optionally delete the notification as it is displayed if it is a "one off" alert only
}
Ответ 3
Расширение ответа Джеффри:
id | from_user | to_user | notification | seen | timestamp
- - - - - -
timestamp поможет вам определить, в какой момент произошло определенное уведомление. Вы также можете создать момент времени, расширив script с помощью timeago.js или Livestamp.js
Это также поможет вам создать временную шкалу уведомлений, а обслуживание уведомления будет проще.