40 lines
1.5 KiB
MySQL
40 lines
1.5 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS public."Hr_T_PerformanceRating"
|
||
|
|
(
|
||
|
|
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
||
|
|
"TenantId" uuid NULL,
|
||
|
|
"Name" varchar(128) NOT NULL,
|
||
|
|
"Level" integer NOT NULL,
|
||
|
|
"MinScore" numeric(6, 2) NOT NULL,
|
||
|
|
"MaxScore" numeric(6, 2) NOT NULL,
|
||
|
|
"Color" varchar(16) NULL,
|
||
|
|
"TargetDistribution" numeric(5, 2) NULL,
|
||
|
|
"Description" varchar(512) NULL,
|
||
|
|
"IsActive" boolean NOT NULL DEFAULT TRUE,
|
||
|
|
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
|
||
|
|
"CreatorId" uuid NULL,
|
||
|
|
"LastModificationTime" timestamp NULL,
|
||
|
|
"LastModifierId" uuid NULL,
|
||
|
|
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
|
||
|
|
"DeletionTime" timestamp NULL,
|
||
|
|
"DeleterId" uuid NULL,
|
||
|
|
CONSTRAINT "PK_Hr_T_PerformanceRating" PRIMARY KEY ("Id")
|
||
|
|
);
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceRating_Range') THEN
|
||
|
|
ALTER TABLE public."Hr_T_PerformanceRating" ADD CONSTRAINT "CK_Hr_T_PerformanceRating_Range" CHECK ("MinScore" < "MaxScore");
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceRating_TargetDistribution') THEN
|
||
|
|
ALTER TABLE public."Hr_T_PerformanceRating" ADD CONSTRAINT "CK_Hr_T_PerformanceRating_TargetDistribution" CHECK ("TargetDistribution" IS NULL OR "TargetDistribution" BETWEEN 0 AND 100);
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
CREATE UNIQUE INDEX IF NOT EXISTS "UX_Hr_T_PerformanceRating_Level" ON public."Hr_T_PerformanceRating" ("TenantId", "Level") WHERE "IsDeleted" = FALSE;
|