Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База данных для игрового сайта, нуждаюсь в совете 
:(
    Опции темы
nepster
Дата 26.10.2013, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Собственно идея такая:
Есть у нас несколько игр, для примера пусть будет игра в дурака.
Сама суть сайта, пользователь заходит в игру (в дурака), создает свою заявку на игру или входит в другую.

Исходя из настроек игры: пользователь может создать заявку 3 игрока или 4 игрока и ожидать других игроков.
К примеру пользователь создал заявку на игру и к нему зашел второй пользователь, тогда начинается игра.

Собственно прошу совета по поводу базы данных, у меня вышла вот такая вот структура:




Код

-- список игр
DROP TABLE IF EXISTS `game`;
CREATE TABLE `game` (
  `game_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `game_name` varchar(200) NOT NULL,
  `game_logo_min` varchar(200) NOT NULL,
  `game_logo_max` varchar(200) NOT NULL,
  `player_min_count` tinyint(1) NOT NULL DEFAULT 2,
  `player_max_count` tinyint(1) NOT NULL DEFAULT 4,
  PRIMARY KEY (`game_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


-- заявки на игру
DROP TABLE IF EXISTS `game_waiting`;
CREATE TABLE `game_waiting` (
  `waiting_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `game_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `user_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `waiting_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
-- статус заявки (-1 закрыта, 0 в ожидании, 1 в игре)
  `request_status` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`waiting_id`),
  index (`game_id`),
  index (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- ----------------------------

-- играющие пользователи 
DROP TABLE IF EXISTS `users_play`;
CREATE TABLE `users_play` (
  `play_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `game_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `user_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `waiting_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
-- статус (0 законченная партия, 1 играющая)
  `play_status` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`play_id`),
  index (`game_id`),
  index(`user_id`),
  unique(`game_id`, `user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- ----------------------------

-- статистика пользователей
DROP TABLE IF EXISTS `users_play_info`;
CREATE TABLE `users_play_info` (
  `play_info_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `game_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `user_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `count_play` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `count_win` int(11) UNSIGNED NOT NULL DEFAULT '0',
  `kmvi` tinyint(2) NOT NULL DEFAULT '0', -- коэффициент мастерства в игре 
-- статус (0 законченная партия, 1 играющая)
  `play_status` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`play_info_id`),
  index (`game_id`),
  index(`user_id`),
  unique(`game_id`, `user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- ----------------------------

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.