CREATE TABLE IF NOT EXISTS events ( id SERIAL, title varchar(128) NOT NULL, description varchar(16384) NOT NULL, datetime timestamp with time zone NOT NULL, location varchar(128) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS invitations ( id SERIAL, vanity char(12) NOT NULL, comments varchar(1024) NOT NULL, created_on timestamp with time zone default current_timestamp, capabilities bigint NOT NULL, event_id integer NOT NULL, PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS rsvps ( id SERIAL, vanity char(12) NOT NULL, invitation_id char(12) NOT NULL, event_id bigint NOT NULL, fullname varchar(128) NOT NULL, email varchar(256) NOT NULL, guests varchar(1024) NOT NULL, attending varchar(32) NOT NULL, PRIMARY KEY (id) ); -- `rsvps` contains the bare minimum. If we later decide we need additional -- fields, we'll have an additional table mapping events.id to attribute names -- and rsvps.id to attribute values.