All pastes #592034 Raw Edit

poker sql schema

public sql v1 · immutable
#592034 ·published 2007-06-27 15:22 UTC
rendered paste body
# Describes one hand playedCREATE TABLE Game(gameid int unsigned not null auto_increment,placeid int unsigned,date datetime not null,button int unsigned not null,pot decimal(11,2) not null,primary key(gameid),foreign key(placeid) references Place(placeid),unique(placeid, date));# Where this was played, sitename & tablenameCREATE TABLE Place(placeid int unsigned not null auto_increment,site varchar(64) not null,tablename varchar(64) not null,primary key(placeid),unique(site, tablename));#CREATE TABLE Player(playerid int unsigned not null auto_increment,name varchar(64) not null,primary key(playerid));# Alot of tables reference gameid and playerid so this is a "meddling" tableCREATE TABLE GamePlayer(gameplayerid int unsigned not null auto_increment,gameid int unsigned,playerid int unsigned,primary key(gameplayerid),foreign key(gameid) references Game(gameid),foreign key(playerid) references Player(playerid),unique(gameid, playerid));# Where each player is seated in a hand. This is one-to-one to gameplayerid...CREATE TABLE Seated(gameplayerid int unsigned,seat int unsigned not null,pot decimal(11,2) not null,primary key(gameplayerid),foreign key(gameplayerid) references GamePlayer(gameplayerid),unique(gameplayerid, seat));# An action during stages preflop, flop, turn or river. One player may make# several actions during the same stageCREATE TABLE Action(gameplayerid int unsigned,stage ENUM('P','F', 'T', 'R') not null,turn int unsigned not null,action ENUM('P','F', 'X', 'C', 'B', 'R', 'A') not null,sum decimal(11,2),primary key(gameplayerid, stage, turn),foreign key(gameplayerid) references GamePlayer(gameplayerid));# What cards on the community were shown during preflop, flop etc.CREATE TABLE Stagecards(gameid int unsigned,stage int unsigned not null,cards tinytext not null,primary key(gameid, stage),foreign key(gameid) references Game(gameid));# if a player reveals his cards during a hand, might be none per hand or several.CREATE TABLE Playercards(gameplayerid int unsigned,cards tinytext not null,primary key(gameplayerid),foreign key(gameplayerid) references GamePlayer(gameplayerid));# Possibly multiple winners in each potCREATE TABLE Winner(gameplayerid int unsigned,sum decimal(11,2) not null,primary key(gameplayerid),foreign key(gameplayerid) references GamePlayer(gameplayerid));