Database changes for file tables

Some minor database changes for file tables. Namely:

 * Added a timestamp to all tables
 * Added a filename column for local files
 * Change some tables that had unnecessary auto-increment primary
   keys when they had another unique column that should act as
   the primary key
 * Change engine from MyISAM to InnoDB for a couple of files.

Also, rebuilt the DB_DataObject files for all these tables.
This commit is contained in:
Evan Prodromou 2009-06-22 14:19:41 -07:00
parent f21cecbfbd
commit 05e5122802
7 changed files with 58 additions and 47 deletions

View File

@ -36,13 +36,15 @@ class File extends Memcached_DataObject
/* the code below is auto generated do not remove the above tag */
public $__table = 'file'; // table name
public $id; // int(11) not_null primary_key group_by
public $id; // int(4) primary_key not_null
public $url; // varchar(255) unique_key
public $mimetype; // varchar(50)
public $size; // int(11) group_by
public $size; // int(4)
public $title; // varchar(255)
public $date; // int(11) group_by
public $protected; // int(1) group_by
public $date; // int(4)
public $protected; // int(4)
public $filename; // varchar(255)
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* Static get */
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('File',$k,$v); }

View File

@ -31,19 +31,19 @@ class File_oembed extends Memcached_DataObject
/* the code below is auto generated do not remove the above tag */
public $__table = 'file_oembed'; // table name
public $id; // int(11) not_null primary_key group_by
public $file_id; // int(11) unique_key group_by
public $file_id; // int(4) primary_key not_null
public $version; // varchar(20)
public $type; // varchar(20)
public $provider; // varchar(50)
public $provider_url; // varchar(255)
public $width; // int(11) group_by
public $height; // int(11) group_by
public $html; // blob(65535) blob
public $width; // int(4)
public $height; // int(4)
public $html; // text()
public $title; // varchar(255)
public $author_name; // varchar(50)
public $author_url; // varchar(255)
public $url; // varchar(255)
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* Static get */
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('File_oembed',$k,$v); }

View File

@ -36,11 +36,11 @@ class File_redirection extends Memcached_DataObject
/* the code below is auto generated do not remove the above tag */
public $__table = 'file_redirection'; // table name
public $id; // int(11) not_null primary_key group_by
public $url; // varchar(255) unique_key
public $file_id; // int(11) group_by
public $redirections; // int(11) group_by
public $httpcode; // int(11) group_by
public $url; // varchar(255) primary_key not_null
public $file_id; // int(4)
public $redirections; // int(4)
public $httpcode; // int(4)
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* Static get */
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('File_redirection',$k,$v); }

View File

@ -31,11 +31,11 @@ class File_thumbnail extends Memcached_DataObject
/* the code below is auto generated do not remove the above tag */
public $__table = 'file_thumbnail'; // table name
public $id; // int(11) not_null primary_key group_by
public $file_id; // int(11) unique_key group_by
public $file_id; // int(4) primary_key not_null
public $url; // varchar(255) unique_key
public $width; // int(11) group_by
public $height; // int(11) group_by
public $width; // int(4)
public $height; // int(4)
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* Static get */
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('File_thumbnail',$k,$v); }

View File

@ -31,9 +31,9 @@ class File_to_post extends Memcached_DataObject
/* the code below is auto generated do not remove the above tag */
public $__table = 'file_to_post'; // table name
public $id; // int(11) not_null primary_key group_by
public $file_id; // int(11) multiple_key group_by
public $post_id; // int(11) group_by
public $file_id; // int(4) primary_key not_null
public $post_id; // int(4) primary_key not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* Static get */
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('File_to_post',$k,$v); }

View File

@ -68,13 +68,14 @@ size = 1
title = 2
date = 1
protected = 1
filename = 2
modified = 384
[file__keys]
id = N
[file_oembed]
id = 129
file_id = 1
file_id = 129
version = 2
type = 2
provider = 2
@ -86,37 +87,40 @@ title = 2
author_name = 2
author_url = 2
url = 2
modified = 384
[file_oembed__keys]
id = N
file_id = K
[file_redirection]
id = 129
url = 2
url = 130
file_id = 1
redirections = 1
httpcode = 1
modified = 384
[file_redirection__keys]
id = N
url = K
[file_thumbnail]
id = 129
file_id = 1
file_id = 129
url = 2
width = 1
height = 1
modified = 384
[file_thumbnail__keys]
id = N
file_id = K
url = U
[file_to_post]
id = 129
file_id = 1
post_id = 1
file_id = 129
post_id = 129
modified = 384
[file_to_post__keys]
id = N
file_id = K
post_id = K
[foreign_link]
user_id = 129

View File

@ -431,6 +431,7 @@ create table group_inbox (
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table file (
id integer primary key auto_increment,
url varchar(255) comment 'destination URL after following redirections',
mimetype varchar(50) comment 'mime type of resource',
@ -438,13 +439,15 @@ create table file (
title varchar(255) comment 'title of resource when available',
date integer(11) comment 'date of resource according to http query',
protected integer(1) comment 'true when URL is private (needs login)',
filename varchar(255) comment 'if a local file, name of the file',
modified timestamp comment 'date this record was modified',
unique(url)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
create table file_oembed (
id integer primary key auto_increment,
file_id integer comment 'oEmbed for that URL/file' references file (id),
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',
provider varchar(50) comment 'name of this oEmbed provider',
@ -456,37 +459,39 @@ create table file_oembed (
author_name varchar(50) comment 'author name for this oEmbed resource',
author_url varchar(255) comment 'author URL for this oEmbed resource',
url varchar(255) comment 'URL for this oEmbed resource when applicable (photo, link)',
modified timestamp comment 'date this record was modified'
unique(file_id)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
create table file_redirection (
id integer primary key auto_increment,
url varchar(255) comment 'short URL (or any other kind of redirect) for file (id)',
url varchar(255) primary key comment 'short URL (or any other kind of redirect) for file (id)',
file_id integer comment 'short URL for what URL/file' references file (id),
redirections integer comment 'redirect count',
httpcode integer comment 'HTTP status code (20x, 30x, etc.)',
modified timestamp comment 'date this record was modified'
unique(url)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table file_thumbnail (
id integer primary key auto_increment,
file_id integer comment 'thumbnail for what URL/file' references file (id),
file_id integer primary key comment 'thumbnail for what URL/file' references file (id),
url varchar(255) comment 'URL of thumbnail',
width integer comment 'width of thumbnail',
height integer comment 'height of thumbnail',
modified timestamp comment 'date this record was modified',
unique(file_id),
unique(url)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table file_to_post (
id integer primary key auto_increment,
file_id integer comment 'id of URL/file' references file (id),
post_id integer comment 'id of the notice it belongs to' references notice (id),
modified timestamp comment 'date this record was modified',
constraint primary key (file_id, post_id)
unique(file_id, post_id)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table design (