src/main/resources/db/db-schema.sql
changeset 92 eb207b189332
parent 91 494b3b9db463
child 98 eac38214183d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/resources/db/db-schema.sql	Thu May 03 09:22:48 2012 +0200
@@ -0,0 +1,236 @@
+-- table declarations :
+create table "code_list_item" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "i18n" boolean not null,
+    "rank" integer not null,
+    "dflt" boolean not null,
+    "code_list" varchar(40) not null,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint,
+    "i1" integer not null,
+    "i2" integer not null,
+    "i3" integer not null,
+    "l1" bigint not null,
+    "l2" bigint not null,
+    "l3" bigint not null,
+    "s1" varchar(200) not null,
+    "s2" varchar(200) not null,
+    "s3" varchar(200) not null,
+    "oi1" integer,
+    "oi2" integer,
+    "oi3" integer,
+    "ol1" bigint,
+    "ol2" bigint,
+    "ol3" bigint,
+    "os1" varchar(200),
+    "os2" varchar(200),
+    "os3" varchar(200),
+    "deleted" boolean not null
+  );
+create sequence "code_list_item_id_seq";
+-- indexes on code_list_item
+create index "code_list_item_code_list_idx" on "code_list_item" ("code_list");
+create table "city" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "note" varchar(10240),
+    "country_id" bigint not null,
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "city_id_seq";
+create table "address" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "street_name" varchar(100) not null,
+    "street_num" varchar(100) not null,
+    "zip_code" varchar(100) not null,
+    "city_id" bigint not null,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "address_id_seq";
+create table "country" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "iso2" varchar(2) not null,
+    "iso3" varchar(3) not null,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "country_id_seq";
+create table "location" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "address_id" bigint not null,
+    "note" varchar(10240),
+    "latitude" double precision not null,
+    "longitude" double precision not null,
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "location_id_seq";
+create table "contact" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "first_name" varchar(80) not null,
+    "last_name" varchar(80) not null,
+    "position" varchar(40),
+    "note" varchar(10240),
+    "work_mail" varchar(256) not null,
+    "work_phone" varchar(40),
+    "work_mobile" varchar(40) not null,
+    "private_mail" varchar(256),
+    "private_phone" varchar(40),
+    "private_mobile" varchar(40),
+    "other_mail" varchar(256),
+    "other_mobile" varchar(40),
+    "fax" varchar(40),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "contact_id_seq";
+create table "company" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "dic" varchar(40) not null,
+    "ico" varchar(40) not null,
+    "note" varchar(10240),
+    "status" bigint not null,
+    "address_id" bigint not null,
+    "post_adress_id" bigint,
+    "pin" integer not null,
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "company_id_seq";
+create table "bank_account" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "prefix" bigint not null,
+    "number" bigint not null,
+    "bank_code" varchar(100) not null,
+    "company_id" bigint not null,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "bank_account_id_seq";
+create table "company_contact" (
+    "contact" bigint not null,
+    "entity" bigint not null
+  );
+create table "user" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "login" varchar(40) not null,
+    "note" varchar(10240),
+    "active" boolean not null,
+    "password" varchar(128) not null,
+    "deleted" boolean not null,
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "user_id_seq";
+-- indexes on user
+create index "user_login_idx" on "user" ("login");
+create table "user_contact" (
+    "contact" bigint not null,
+    "entity" bigint not null
+  );
+create table "project" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "description" varchar(40960) not null,
+    "responsible" bigint not null,
+    "deadline" timestamp not null,
+    "ident_s" varchar(256) not null,
+    "state" bigint not null,
+    "product_line" bigint,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "project_id_seq";
+create table "task" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "project_id" bigint not null,
+    "responsible" bigint not null,
+    "deadline" timestamp not null,
+    "state" bigint not null,
+    "task_type" bigint,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "task_id_seq";
+create table "comment" (
+    "id" bigint primary key not null,
+    "name" varchar(100) not null,
+    "task_id" bigint not null,
+    "note" varchar(10240),
+    "created_at" timestamp not null,
+    "created_by" bigint,
+    "updated_at" timestamp not null,
+    "updated_by" bigint
+  );
+create sequence "comment_id_seq";
+create table "project_company" (
+    "project" bigint not null,
+    "company" bigint not null
+  );
+-- foreign key constraints :
+alter table "address" add foreign key ("city_id") references "city"("id");
+alter table "city" add foreign key ("country_id") references "country"("id");
+alter table "location" add foreign key ("address_id") references "address"("id");
+alter table "company" add foreign key ("status") references "code_list_item"("id");
+alter table "company" add foreign key ("address_id") references "address"("id");
+alter table "company" add foreign key ("post_adress_id") references "address"("id") on delete set null;
+alter table "bank_account" add foreign key ("company_id") references "company"("id") on delete cascade;
+alter table "project" add foreign key ("responsible") references "user"("id");
+alter table "project" add foreign key ("product_line") references "code_list_item"("id") on delete set null;
+alter table "project" add foreign key ("state") references "code_list_item"("id");
+alter table "task" add foreign key ("responsible") references "user"("id");
+alter table "task" add foreign key ("task_type") references "code_list_item"("id");
+alter table "task" add foreign key ("state") references "code_list_item"("id");
+alter table "task" add foreign key ("project_id") references "project"("id");
+alter table "comment" add foreign key ("task_id") references "task"("id") on delete cascade;
+alter table "company_contact" add foreign key ("entity") references "company"("id") on delete cascade;
+alter table "company_contact" add foreign key ("contact") references "contact"("id") on delete cascade;
+alter table "user_contact" add foreign key ("entity") references "user"("id") on delete cascade;
+alter table "user_contact" add foreign key ("contact") references "contact"("id") on delete cascade;
+alter table "project_company" add foreign key ("project") references "project"("id") on delete cascade;
+alter table "project_company" add foreign key ("company") references "company"("id") on delete cascade;
+-- composite key indexes :
+alter table "company_contact" add unique("entity","contact");
+alter table "user_contact" add unique("entity","contact");
+alter table "project_company" add unique("project","company");
+-- column group indexes :
+create index "user_deleted_active_idx" on "user" ("deleted","active");