@valerium любая платежная система имеет время в течении которого пользователь имеет право оплатить заказ. Обычно это от 40 минут до 2х часов. Соответственно в течении этого времени бронь должна висеть.
Крон раз в 5-10 минут - вполне нормальный лаг я считаю.
А вообще для интернет магазина ситация когда товар закончился - это дикий форс мажор.
@valerium это плохое решение. Система бронирования становится актуальной когда складские остатки колеблются около нуля. Соответственно если нет не зарезервированного товара - об этом надо честно говорить покупателю
@wbird Это личное дело пользователя. Если он не захочет вводить своё настоящее фио - он его не введет. Принципиальной разницы по качеству контента между "#@(##@№:;" и "Вася МегаДерьмоДестройерОдинОдин" я не вижу.
@Rpsl судя по формулировкам вопроса - вряд ли там выделенный сервер. Какой нибудь shared хостинг может упасть и на меньшем.
Ну и рассуждая формально - в худшем случае 200 онлайн это 200 конкурентных. Дальше продолжать?
Если вы делаете мультиязычный сайт - разрешите пользователю использовать все символы кроме < >.
Запрет на использование неких специальных символов юникода - не обоснован ничем.
Невнимательно прочитал Ваш второй вариант, он плохой)
Лучше сделать так:
1) Таблица messages где user_id - получатель, status - статус прочел ли он это сообщение. Ключ по user_id.
2) Таблица для хранения количества: user_id, unread_message_cnt.
user_id primary