(! - Generated; * - Mandatory; ? - Optional; & foreign key)
Game
----

ID
Campaign
Title
Description
Owner
World
Date_created
date_modified
status
view-permissions

! ID - An identification number. (int)
* Title - Title of the game (Text-128 Unicode) (Unique to Campaign)
* ShortTitle - Short Title of the game for URLs. Autodefaulted from title  (Text-64 Ascii)
& Campaign - A link to the parent campaign. (int)
	Magic:
		0 - no campaign
* Description - Text description of the game. (medium unicode text)
& Owner - id of user who created - or otherwise owns - this game.
? World - Name of the world the universe/world is being played in (text-128, Unicode)
! Date_created (datetime)
! date_modified (datetime)
* status
	10 construction - game hasn't started yet
	20 active - Game is in play
	30 paused - Game is temporarily stopped
	40 ended - Game is over.
* view-permissions
	10 - Only the owner can see the game
	20 - Only the GMs can see the game
	30 - Only the players can see the game
	40 - Only logged in users can see the game
	50 - anyone can see the game.

That’s an extract from today’s document. Going though this for every table gives me a good idea of where I’ve mucked up the data relationships, or put in circuler dependancies and maps fairly easily into SQL. Also it provides a reference which I can paste into a comment in the handling code (either this or the SQL itself) to give me a heads-up on the desired formats. Next Up: SQL