Все привет!
Собственно идея такая:
Есть у нас несколько игр, для примера пусть будет игра в дурака.
Сама суть сайта, пользователь заходит в игру (в дурака), создает свою заявку на игру или входит в другую.
Исходя из настроек игры: пользователь может создать заявку 3 игрока или 4 игрока и ожидать других игроков.
К примеру пользователь создал заявку на игру и к нему зашел второй пользователь, тогда начинается игра.
Собственно прошу совета по поводу базы данных, у меня вышла вот такая вот структура:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
-- список игр
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;
-- ----------------------------