From: Evan Prodromou Date: Thu, 5 Jun 2008 02:48:07 +0000 (-0400) Subject: move stoica schema to laconica X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b42c09c66fbf61b8a637641c578c3232d03d2cea;p=quix0rs-gnu-social.git move stoica schema to laconica darcs-hash:20080605024807-84dde-b6b112fc71f6337bf2d3605944191454aaeb28e2.gz --- diff --git a/db/laconica.sql b/db/laconica.sql new file mode 100644 index 0000000000..97f56bd151 --- /dev/null +++ b/db/laconica.sql @@ -0,0 +1,115 @@ +/* local and remote users have profiles */ + +create table profile ( + id integer auto_increment primary key comment 'unique identifier', + nickname varchar(64) not null comment 'nickname or username', + fullname varchar(255) comment 'display name', + profileurl varchar(255) comment 'URL, cached so we dont regenerate', + homepage varchar(255) comment 'identifying URL', + bio varchar(140) comment 'descriptive biography', + location varchar(255) comment 'physical location', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + index profile_nickname_idx (nickname) +); + +create table avatar ( + profile_id integer not null comment 'foreign key to profile table' references profile (id), + original boolean default false comment 'uploaded by user or generated?', + width integer not null comment 'image width', + height integer not null comment 'image height', + mediatype varchar(32) not null comment 'file type', + filename varchar(255) null comment 'local filename, if local', + url varchar(255) unique key comment 'avatar location', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (profile_id, width, height), + index avatar_profile_id_idx (profile_id) +); + +/* local users */ + +create table user ( + id integer primary key comment 'foreign key to profile table' references profile (id), + nickname varchar(64) unique key comment 'nickname or username, duped in profile', + password varchar(255) comment 'salted password, can be null for OpenID users', + email varchar(255) unique key comment 'email address for password recovery etc.', + uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' +); + +/* remote people */ + +create table remote_profile ( + id integer primary key comment 'foreign key to profile table' references profile (id), + uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', + postnoticeurl varchar(255) comment 'URL we use for posting notices', + updateprofileurl varchar(255) comment 'URL we use for updates to this profile', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' +); + +create table subscription ( + subscriber integer not null comment 'profile listening', + subscribed integer not null comment 'profile being listened to', + token varchar(255) comment 'authorization token', + secret varchar(255) comment 'token secret', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (subscriber, subscribed), + index subscription_subscriber_idx (subscriber), + index subscription_subscribed_idx (subscribed) +); + +create table notice ( + id integer auto_increment primary key comment 'unique identifier', + profile_id integer not null comment 'who made the update' references profile (id), + uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', + content varchar(140) comment 'update content', + /* XXX: cache rendered content. */ + url varchar(255) comment 'URL of any attachment (image, video, bookmark, whatever)', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + index notice_profile_id_idx (profile_id) +); + +/* tables for OAuth */ + +create table consumer ( + consumer_key varchar(255) primary key comment 'unique identifier, root URL', + seed char(32) not null comment 'seed for new tokens by this consumer', + + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' +); + +create table token ( + consumer_key varchar(255) not null comment 'unique identifier, root URL' references consumer (consumer_key), + tok char(32) not null comment 'identifying value', + secret char(32) not null comment 'secret value', + type tinyint not null default 0 comment 'request or access', + state tinyint default 0 comment 'for requests; 0 = initial, 1 = authorized, 2 = used', + + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (consumer_key, tok) +); + +create table nonce ( + consumer_key varchar(255) not null comment 'unique identifier, root URL', + tok char(32) not null comment 'identifying value', + nonce char(32) not null comment 'nonce', + ts datetime not null comment 'timestamp sent', + + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (consumer_key, tok, nonce), + constraint foreign key (consumer_key, tok) references token (consumer_key, tok) +); \ No newline at end of file diff --git a/db/stoica.sql b/db/stoica.sql deleted file mode 100644 index 97f56bd151..0000000000 --- a/db/stoica.sql +++ /dev/null @@ -1,115 +0,0 @@ -/* local and remote users have profiles */ - -create table profile ( - id integer auto_increment primary key comment 'unique identifier', - nickname varchar(64) not null comment 'nickname or username', - fullname varchar(255) comment 'display name', - profileurl varchar(255) comment 'URL, cached so we dont regenerate', - homepage varchar(255) comment 'identifying URL', - bio varchar(140) comment 'descriptive biography', - location varchar(255) comment 'physical location', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index profile_nickname_idx (nickname) -); - -create table avatar ( - profile_id integer not null comment 'foreign key to profile table' references profile (id), - original boolean default false comment 'uploaded by user or generated?', - width integer not null comment 'image width', - height integer not null comment 'image height', - mediatype varchar(32) not null comment 'file type', - filename varchar(255) null comment 'local filename, if local', - url varchar(255) unique key comment 'avatar location', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (profile_id, width, height), - index avatar_profile_id_idx (profile_id) -); - -/* local users */ - -create table user ( - id integer primary key comment 'foreign key to profile table' references profile (id), - nickname varchar(64) unique key comment 'nickname or username, duped in profile', - password varchar(255) comment 'salted password, can be null for OpenID users', - email varchar(255) unique key comment 'email address for password recovery etc.', - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -); - -/* remote people */ - -create table remote_profile ( - id integer primary key comment 'foreign key to profile table' references profile (id), - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - postnoticeurl varchar(255) comment 'URL we use for posting notices', - updateprofileurl varchar(255) comment 'URL we use for updates to this profile', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -); - -create table subscription ( - subscriber integer not null comment 'profile listening', - subscribed integer not null comment 'profile being listened to', - token varchar(255) comment 'authorization token', - secret varchar(255) comment 'token secret', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (subscriber, subscribed), - index subscription_subscriber_idx (subscriber), - index subscription_subscribed_idx (subscribed) -); - -create table notice ( - id integer auto_increment primary key comment 'unique identifier', - profile_id integer not null comment 'who made the update' references profile (id), - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - content varchar(140) comment 'update content', - /* XXX: cache rendered content. */ - url varchar(255) comment 'URL of any attachment (image, video, bookmark, whatever)', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index notice_profile_id_idx (profile_id) -); - -/* tables for OAuth */ - -create table consumer ( - consumer_key varchar(255) primary key comment 'unique identifier, root URL', - seed char(32) not null comment 'seed for new tokens by this consumer', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -); - -create table token ( - consumer_key varchar(255) not null comment 'unique identifier, root URL' references consumer (consumer_key), - tok char(32) not null comment 'identifying value', - secret char(32) not null comment 'secret value', - type tinyint not null default 0 comment 'request or access', - state tinyint default 0 comment 'for requests; 0 = initial, 1 = authorized, 2 = used', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (consumer_key, tok) -); - -create table nonce ( - consumer_key varchar(255) not null comment 'unique identifier, root URL', - tok char(32) not null comment 'identifying value', - nonce char(32) not null comment 'nonce', - ts datetime not null comment 'timestamp sent', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (consumer_key, tok, nonce), - constraint foreign key (consumer_key, tok) references token (consumer_key, tok) -); \ No newline at end of file