]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
initial database
authorEvan Prodromou <evan@prodromou.name>
Mon, 5 May 2008 13:50:19 +0000 (09:50 -0400)
committerEvan Prodromou <evan@prodromou.name>
Mon, 5 May 2008 13:50:19 +0000 (09:50 -0400)
darcs-hash:20080505135019-84dde-f35cef3a6f3c990937376c21e5e6d70c8eb22f80.gz

stoica.sql [new file with mode: 0644]

diff --git a/stoica.sql b/stoica.sql
new file mode 100644 (file)
index 0000000..f7f32ad
--- /dev/null
@@ -0,0 +1,58 @@
+/* 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)
+);
+
+/* local users */
+
+create table user (
+    id integer primary key comment 'foreign key to profile table' references profile (id),
+    password varchar(255) comment 'salted password, can be null for OpenID users',
+    email varchar(255) unique key comment 'email address for password recovery etc.',
+    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),
+    url varchar(255) unique key comment 'URL we use for updates from this profile (distinct from "home page" url)',
+    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',
+    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),
+    content varchar(140) comment 'update content',
+    rendered varchar(140) comment 'pre-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)
+);
\ No newline at end of file