117 lines
3.2 KiB
SQL
117 lines
3.2 KiB
SQL
CREATE TABLE "meta" (
|
||
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
|
||
"system_code" varchar(50) NOT NULL,
|
||
"tool" uuid,
|
||
"practice" varchar(32) NOT NULL,
|
||
"build" varchar(250) NOT NULL,
|
||
"enviroment" varchar(250) NOT NULL,
|
||
"library" varchar(50),
|
||
"method" varchar(10),
|
||
"hash" varchar(500) NOT NULL,
|
||
"created_at" datetime NOT NULL
|
||
);
|
||
|
||
CREATE TABLE "tool" (
|
||
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
|
||
"tool" varchar(50) NOT NULL,
|
||
"practive" varchar(20) NOT NULL
|
||
);
|
||
|
||
CREATE TABLE "problem" (
|
||
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
|
||
"executor" uuid,
|
||
"is_created_manually" bool,
|
||
"status" varchar(32) NOT NULL,
|
||
"status_updated_at" datetime NOT NULL,
|
||
"resolution" varchar(32),
|
||
"priority" varchar(32) NOT NULL,
|
||
"description" varchar(500),
|
||
"remediation" varchar(500),
|
||
"сategory" varchar(250),
|
||
"cve" varchar(50),
|
||
"cwe" varchar(500),
|
||
"cvss" int,
|
||
"location" varchar(500) NOT NULL,
|
||
"defect_id" uuid,
|
||
"defect_status" varchar(32),
|
||
"created_at" datetime NOT NULL,
|
||
"exception_date" datetime,
|
||
"category" varchar(250),
|
||
"hash" varchar(500) NOT NULL,
|
||
"creator" uuid,
|
||
"version" int NOT NULL,
|
||
"group_id" uuid,
|
||
"meta" uuid NOT NULL
|
||
);
|
||
|
||
CREATE TABLE "user" (
|
||
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
|
||
"login" varchar(100) NOT NULL,
|
||
"is_active" bool
|
||
);
|
||
|
||
CREATE TABLE "problem_group" (
|
||
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
|
||
"name" varchar(50) NOT NULL,
|
||
"description" varchar(300)
|
||
);
|
||
|
||
CREATE TABLE "system" (
|
||
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
|
||
"name" varchar(50) NOT NULL,
|
||
"code" varchar(50) NOT NULL,
|
||
"buiseness_critical" bool,
|
||
"security_critical" bool,
|
||
"is_active" bool,
|
||
PRIMARY KEY ("id")
|
||
);
|
||
|
||
CREATE TABLE "user_to_system" (
|
||
"system_id" uuid NOT NULL,
|
||
"user_id" uuid NOT NULL,
|
||
PRIMARY KEY ("system_id", "user_id")
|
||
);
|
||
|
||
CREATE TABLE "comment" (
|
||
"id" uuid PRIMARY KEY NOT NULL,
|
||
"problem_id" uuid NOT NULL,
|
||
"description" varchar(500) NOT NULL,
|
||
"created_by" uuid NOT NULL,
|
||
"created_at" datetime NOT NULL
|
||
);
|
||
|
||
CREATE TABLE "work_history" (
|
||
"id" uuid PRIMARY KEY NOT NULL,
|
||
"problem_id" uuid NOT NULL,
|
||
"action" varchar(100),
|
||
"old_value" varchar(100),
|
||
"new_value" varchar(100),
|
||
"user_id" uuid NOT NULL,
|
||
"created_at" datetime NOT NULL
|
||
);
|
||
|
||
CREATE INDEX ON "system" ("code");
|
||
|
||
ALTER TABLE "meta" ADD FOREIGN KEY ("system_code") REFERENCES "system" ("code");
|
||
|
||
ALTER TABLE "meta" ADD FOREIGN KEY ("tool") REFERENCES "tool" ("id");
|
||
|
||
ALTER TABLE "problem" ADD FOREIGN KEY ("executor") REFERENCES "user" ("id");
|
||
|
||
ALTER TABLE "problem" ADD FOREIGN KEY ("creator") REFERENCES "user" ("id");
|
||
|
||
ALTER TABLE "problem" ADD FOREIGN KEY ("group_id") REFERENCES "problem_group" ("id");
|
||
|
||
ALTER TABLE "problem" ADD FOREIGN KEY ("meta") REFERENCES "meta" ("id");
|
||
|
||
ALTER TABLE "user_to_system" ADD FOREIGN KEY ("system_id") REFERENCES "system" ("id");
|
||
|
||
ALTER TABLE "user_to_system" ADD FOREIGN KEY ("user_id") REFERENCES "user" ("id");
|
||
|
||
ALTER TABLE "comment" ADD FOREIGN KEY ("problem_id") REFERENCES "problem" ("id");
|
||
|
||
ALTER TABLE "comment" ADD FOREIGN KEY ("created_by") REFERENCES "user" ("id");
|
||
|
||
ALTER TABLE "work_history" ADD FOREIGN KEY ("problem_id") REFERENCES "problem" ("id");
|
||
|
||
ALTER TABLE "work_history" ADD FOREIGN KEY ("user_id") REFERENCES "user" ("id");
|