Я новичок в дизайне БД.Я пытаюсь написать настольную игру (максимум 4 игрока) и пытаюсь найти способ сообщать ходы друг другу.Я использую БД для этого в соответствии с предложениями по stackoverflow.
Моя проблема заключается в следующем - когда игрок A делает ход, этот ход должен быть прочитан B, C и D. Так что факт, что A сделалход должен быть сообщен B, C и D. Я делаю это следующим образом.Пожалуйста, скажите мне, если есть лучший способ сделать это.Мне это кажется неправильным и невероятно ненадежным.
У меня есть таблица со следующими полями -
gameId, userMove, flagA, flagB, flagC, flagD
Итак, когдаA делает ход, который я пишу, среди прочего - (flagA = 0, flagB = 1, flagC = 1, flagD = 1)
Когда B, C или D читают ход A, они уменьшают свой соответствующий флаг.
A не будет обновлять таблицу, если все флаги не равны 0.
То же самое происходит, когда другие делают свои ходы.
Комментарии?Должен быть лучший способ для этого.То, что я вижу здесь неправильно -
- Я зацикливаюсь на выборе, пока все флаги не равны 0 для A
- Я зацикливаюсь на выборе, пока флаг соответствующего пользователя не будетустановить чтение.
Это большая нагрузка на сервер и тайм-ауты клиентов, о которых мне нужно беспокоиться.
Я надеюсь, что смог объяснить свою проблему ясно.Пожалуйста, задавайте вопросы, если необходимо.
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: Игра основана на сети (работает в браузере), и я использую php для разработки на стороне сервера, и поэтому я не могуиспользуйте кэш в памяти, хотя я бы хотел сделать это, если это возможно.
Спасибо, - Pav