wisemapping-open-source/config/database/postgres/create-schemas.sql
2013-03-10 19:05:33 -03:00

79 lines
2.1 KiB
SQL

CREATE TABLE COLLABORATOR (
id SERIAL NOT NULL PRIMARY KEY,
email varchar(255) NOT NULL UNIQUE,
creation_date date
);
CREATE TABLE "user" (
id SERIAL NOT NULL PRIMARY KEY,
colaborator_id INTEGER NOT NULL,
firstname varchar(255) NOT NULL,
lastname varchar(255) NOT NULL,
password varchar(255) NOT NULL,
activation_code BIGINT NOT NULL,
activation_date date,
allow_send_email text NOT NULL default 0,
locale varchar(5),
FOREIGN KEY(colaborator_id) REFERENCES COLLABORATOR(id) ON DELETE CASCADE ON UPDATE NO ACTION
) ;
CREATE TABLE MINDMAP (
id SERIAL NOT NULL PRIMARY KEY,
title varchar(255) NOT NULL,
description varchar(255) NOT NULL,
xml bytea NOT NULL,
public BOOL not null default FALSE,
creation_date timestamp,
edition_date timestamp,
creator_id INTEGER not null,
tags varchar(1014) ,
last_editor_id INTEGER NOT NULL --,
--FOREIGN KEY(creator_id) REFERENCES "USER"(colaborator_id) ON DELETE CASCADE ON UPDATE NO ACTION
) ;
CREATE TABLE MINDMAP_HISTORY
(id SERIAL NOT NULL PRIMARY KEY,
xml bytea NOT NULL,
mindmap_id INTEGER NOT NULL,
creation_date timestamp,
editor_id INTEGER NOT NULL,
FOREIGN KEY(mindmap_id) REFERENCES MINDMAP(id) ON DELETE CASCADE ON UPDATE NO ACTION
) ;
CREATE TABLE COLLABORATION_PROPERTIES(
id SERIAL NOT NULL PRIMARY KEY,
starred BOOL NOT NULL default FALSE,
mindmap_properties varchar(512)
);
CREATE TABLE COLLABORATION (
id SERIAL NOT NULL PRIMARY KEY,
colaborator_id INTEGER NOT NULL,
properties_id INTEGER NOT NULL,
mindmap_id INTEGER NOT NULL,
role_id INTEGER NOT NULL,
FOREIGN KEY(colaborator_id) REFERENCES COLLABORATOR(id),
FOREIGN KEY(mindmap_id) REFERENCES MINDMAP(id) ON DELETE CASCADE ON UPDATE NO ACTION,
FOREIGN KEY(properties_id) REFERENCES COLLABORATION_PROPERTIES(id) ON DELETE CASCADE ON UPDATE NO ACTION
) ;
CREATE TABLE TAG(
id SERIAL NOT NULL PRIMARY KEY,
name varchar(255) NOT NULL,
user_id INTEGER NOT NULL --,
--FOREIGN KEY(user_id) REFERENCES "USER"(colaborator_id) ON DELETE CASCADE ON UPDATE NO ACTION
) ;
CREATE TABLE ACCESS_AUDITORY (
id SERIAL NOT NULL PRIMARY KEY,
login_date date,
user_id INTEGER NOT NULL
) ;
COMMIT;