【发布时间】:2015-04-12 00:09:02
【问题描述】:
我正在尝试创建一个游戏数据库。我已经创建了一个用户表,其中存储了用户、密码和电子邮件。
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` char(40) DEFAULT NULL,
`email` varchar(60) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8;
我还创建了一个游戏表,其中包含游戏类型、游戏名称、持续时间、描述、活跃度和创建者。
CREATE TABLE `games` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(30) DEFAULT NULL,
`name` varchar(60) DEFAULT NULL,
`duration` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`description` varchar(255) DEFAULT NULL,
`Active` tinyint(1) DEFAULT NULL,
`Completed` tinyint(1) DEFAULT NULL,
`createdBy` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
用户将能够创建一个游戏并邀请 x 个用户,因此这将是多对多的关系。我试图创建一个名为 active_games 的表,但我不确定我应该如何进行。我需要一个联系,这样我才能知道谁创造了这个游戏,谁在玩那个游戏。
CREATE TABLE `active_games` (
`user_id` int(11) NOT NULL DEFAULT '0',
`game_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`user_id`,`game_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
下一步是什么?如果用户创建一个游戏并向其他朋友发送“邀请”,是否可以自动分配一个游戏 ID 以及被邀请到该游戏 ID 的用户?如果我想查找特定用户的所有活跃游戏,我该怎么做?
【问题讨论】:
-
要自动创建条目,您可以将触发器添加到
games表。
标签: mysql database database-design