]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - db/statusnet.sql
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
[quix0rs-gnu-social.git] / db / statusnet.sql
index 1662ef7a8be6bc074c1c76b4a25937cd3955ad3d..18abcdfdb2d8b479b2b4489205ab31990a21991b 100644 (file)
@@ -1,6 +1,7 @@
 /* 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',
@@ -8,6 +9,11 @@ create table profile (
     homepage varchar(255) comment 'identifying URL',
     bio text comment 'descriptive biography',
     location varchar(255) comment 'physical location',
+    lat decimal(10,7) comment 'latitude',
+    lon decimal(10,7) comment 'longitude',
+    location_id integer comment 'location id if possible',
+    location_ns integer comment 'namespace for location',
+
     created datetime not null comment 'date this record was created',
     modified timestamp comment 'date this record was modified',
 
@@ -101,8 +107,8 @@ create table subscription (
     modified timestamp comment 'date this record was modified',
 
     constraint primary key (subscriber, subscribed),
-    index subscription_subscriber_idx (subscriber),
-    index subscription_subscribed_idx (subscribed),
+    index subscription_subscriber_idx (subscriber, created),
+    index subscription_subscribed_idx (subscribed, created),
     index subscription_token_idx (token)
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
@@ -119,8 +125,12 @@ create table notice (
     is_local tinyint default 0 comment 'notice was generated by a user',
     source varchar(32) comment 'source of comment, like "web", "im", or "clientname"',
     conversation integer comment 'id of root notice in this conversation' references notice (id),
+    lat decimal(10,7) comment 'latitude',
+    lon decimal(10,7) comment 'longitude',
+    location_id integer comment 'location id if possible',
+    location_ns integer comment 'namespace for location',
 
-    index notice_profile_id_idx (profile_id),
+    index notice_profile_id_idx (profile_id,created,id),
     index notice_conversation_idx (conversation),
     index notice_created_idx (created),
     index notice_replyto_idx (reply_to),
@@ -155,7 +165,7 @@ create table fave (
 
     constraint primary key (notice_id, user_id),
     index fave_notice_id_idx (notice_id),
-    index fave_user_id_idx (user_id),
+    index fave_user_id_idx (user_id,modified),
     index fave_modified_idx (modified)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
@@ -195,18 +205,6 @@ create table nonce (
     constraint primary key (consumer_key, ts, nonce)
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
-/* One-to-many relationship of user to openid_url */
-
-create table user_openid (
-    canonical varchar(255) primary key comment 'Canonical true URL',
-    display varchar(255) not null unique key comment 'URL for viewing, may be different from canonical',
-    user_id integer not null comment 'user owning this URL' references user (id),
-    created datetime not null comment 'date this record was created',
-    modified timestamp comment 'date this record was modified',
-
-    index user_openid_user_id_idx (user_id)
-) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
-
 /* These are used by JanRain OpenID library */
 
 create table oid_associations (
@@ -450,6 +448,7 @@ create table file_oembed (
     file_id integer primary key comment 'oEmbed for that URL/file' references file (id),
     version varchar(20) comment 'oEmbed spec. version',
     type varchar(20) comment 'oEmbed type: photo, video, link, rich',
+    mimetype varchar(50) comment 'mime type of resource',
     provider varchar(50) comment 'name of this oEmbed provider',
     provider_url varchar(255) comment 'URL of this oEmbed provider',
     width integer comment 'width of oEmbed resource when available',
@@ -557,3 +556,32 @@ create table config (
     constraint primary key (section, setting)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table profile_role (
+
+    profile_id integer not null comment 'account having the role' references profile (id),
+    role    varchar(32) not null comment 'string representing the role',
+    created datetime not null comment 'date the role was granted',
+
+    constraint primary key (profile_id, role)
+
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table location_namespace (
+
+    id integer primary key comment 'identity for this namespace',
+    description varchar(255) comment 'description of the namespace',
+    created datetime not null comment 'date the record was created',
+    modified timestamp comment 'date this record was modified'
+
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table login_token (
+    user_id integer not null comment 'user owning this token' references user (id),
+    token char(32) not null comment 'token useable for logging in',
+    created datetime not null comment 'date this record was created',
+    modified timestamp comment 'date this record was modified',
+
+    constraint primary key (user_id)
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+