CREATE TABLE Classes (
id SERIAL,
Name varchar(255) NOT NULL DEFAULT '',
Description varchar(255) NOT NULL DEFAULT '',
SortOrder integer NOT NULL DEFAULT 0,
Disabled smallint NOT NULL DEFAULT 0,
Creator integer NOT NULL DEFAULT 0,
Created TIMESTAMP NULL,
LastUpdatedBy integer NOT NULL DEFAULT 0,
LastUpdated TIMESTAMP NULL,
HotList smallint NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);

CREATE TABLE Articles (
id SERIAL,
Name varchar(255) NOT NULL DEFAULT '',
Summary varchar(255) NOT NULL DEFAULT '',
SortOrder integer NOT NULL DEFAULT 0,
Class integer NOT NULL DEFAULT 0,
Parent integer NOT NULL DEFAULT 0,
URI varchar(255),
Creator integer NOT NULL DEFAULT 0,
Created TIMESTAMP NULL,
LastUpdatedBy integer NOT NULL DEFAULT 0,
LastUpdated TIMESTAMP NULL,
PRIMARY KEY (id)
);


CREATE TABLE Topics (
id SERIAL,
Parent integer NOT NULL DEFAULT 0,
Name varchar(255) NOT NULL DEFAULT '',
Description varchar(255) NOT NULL DEFAULT '',
ObjectType varchar(64) NOT NULL DEFAULT '',
ObjectId integer NOT NULL,
PRIMARY KEY (id)
);


CREATE TABLE ObjectTopics (
id SERIAL,
Topic integer NOT NULL,
ObjectType varchar(64) NOT NULL DEFAULT '',
ObjectId integer NOT NULL,
PRIMARY KEY (id)
);


CREATE TABLE ObjectClasses (
id SERIAL,
Class integer NOT NULL,
ObjectType varchar(255) NOT NULL DEFAULT '',
ObjectId integer NOT NULL,
Creator integer NOT NULL DEFAULT 0,
Created TIMESTAMP NULL,
LastUpdatedBy integer NOT NULL DEFAULT 0,
LastUpdated TIMESTAMP NULL,
PRIMARY KEY (id)
);

