From 6d72578228dedfe2625b0db7ee85683b155880ce Mon Sep 17 00:00:00 2001 From: Mariusz Sielski Date: Sun, 2 Dec 2018 11:13:40 +0100 Subject: [PATCH] mapping --- sql/create.sql | 56 ++++++++++++++++++++++++++++--------------------- sql/indexes.sql | 44 +++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 46 deletions(-) diff --git a/sql/create.sql b/sql/create.sql index 7ef8f82..ca71562 100644 --- a/sql/create.sql +++ b/sql/create.sql @@ -1,3 +1,6 @@ +DROP TABLE IF EXISTS FT_Refund; +DROP TABLE IF EXISTS FT_Registration; + DROP TABLE IF EXISTS dim_factories; CREATE TABLE dim_factories ( factory_sk INTEGER identity(1,1) PRIMARY KEY, @@ -54,6 +57,13 @@ VALUES ('W', 'Waiting'); GO +DROP TABLE IF EXISTS claim_status_mapping; +CREATE TABLE claim_status_mapping ( + status_code_bk VARCHAR(1), + status_code_value VARCHAR(50) +); +GO + DROP TABLE IF EXISTS dim_indications; CREATE TABLE dim_indications ( indication_sk INTEGER identity(1, 1) PRIMARY KEY, @@ -68,37 +78,35 @@ GO --IF OBJECT_ID('dbo.FT1_Registartion') IS NOT NULL DROP TABLE dbo.MyCategories; -DROP TABLE IF EXISTS FT1_Registration; -CREATE TABLE FT1_Registration ( - id INTEGER identity(1,1) PRIMARY KEY, - expected_response_time_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), - submission_date_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), - response_time_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), - drug_fk integer FOREIGN KEY REFERENCES dim_drugs(drug_sk), - factory_API_fk integer FOREIGN KEY REFERENCES dim_factories(factory_sk), - factory_bulk_fk integer FOREIGN KEY REFERENCES dim_factories(factory_sk), - factory_package_fk integer FOREIGN KEY REFERENCES dim_factories(factory_sk), - country_fk integer FOREIGN KEY REFERENCES dim_countries(country_sk), +CREATE TABLE FT_Registration ( + ft_registration_sk INTEGER identity(1,1) PRIMARY KEY, + expected_response_time_fk integer FOREIGN KEY REFERENCES dim_time(time_sk) NOT NULL, + submission_date_fk integer FOREIGN KEY REFERENCES dim_time(time_sk) NOT NULL, + response_time_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), -- moze byc null + drug_fk integer FOREIGN KEY REFERENCES dim_drugs(drug_sk) NOT NULL, + factory_API_fk integer FOREIGN KEY REFERENCES dim_factories(factory_sk) NOT NULL, + factory_bulk_fk integer FOREIGN KEY REFERENCES dim_factories(factory_sk) NOT NULL, + factory_package_fk integer FOREIGN KEY REFERENCES dim_factories(factory_sk) NOT NULL, + country_fk integer FOREIGN KEY REFERENCES dim_countries(country_sk) NOT NULL, --claim status do uspójnienia z tabelą dim_status, wydaje mi się, że można by dodać przedrostek claim do kolumn, będzie czytelniej :) - claim_status_fk integer FOREIGN KEY REFERENCES dim_claim_statuses(claim_status_sk), - indication_fk integer FOREIGN KEY REFERENCES dim_indications(indication_sk), + claim_status_fk integer FOREIGN KEY REFERENCES dim_claim_statuses(claim_status_sk) NOT NULL, + indication_fk integer FOREIGN KEY REFERENCES dim_indications(indication_sk) NOT NULL, claim_number NVARCHAR(50), -- cnt jest tylko zliczeniowy, będzie miał 1, więc dałbym tinyint cnt tinyint, ); GO -DROP TABLE IF EXISTS FT2_Refund; -CREATE TABLE FT2_Refund ( - id INTEGER identity(1,1) PRIMARY KEY, - claim_status_fk integer FOREIGN KEY REFERENCES dim_claim_statuses(claim_status_sk), - drug_fk integer FOREIGN KEY REFERENCES dim_drugs(drug_sk), - submission_date_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), - expected_response_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), - response_time_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), - country_fk integer FOREIGN KEY REFERENCES dim_countries(country_sk), - indication_fk integer FOREIGN KEY REFERENCES dim_indications(indication_sk), - registration_country_fk integer FOREIGN KEY REFERENCES dim_countries(country_sk), +CREATE TABLE FT_Refund ( + ft_registartion_sk INTEGER identity(1,1) PRIMARY KEY, + claim_status_fk integer FOREIGN KEY REFERENCES dim_claim_statuses(claim_status_sk) NOT NULL, + drug_fk integer FOREIGN KEY REFERENCES dim_drugs(drug_sk) NOT NULL, + submission_date_fk integer FOREIGN KEY REFERENCES dim_time(time_sk) NOT NULL, + expected_response_fk integer FOREIGN KEY REFERENCES dim_time(time_sk) NOT NULL, + response_time_fk integer FOREIGN KEY REFERENCES dim_time(time_sk), -- moze byc null + country_fk integer FOREIGN KEY REFERENCES dim_countries(country_sk) NOT NULL, + indication_fk integer FOREIGN KEY REFERENCES dim_indications(indication_sk) NOT NULL, + registration_country_fk integer FOREIGN KEY REFERENCES dim_countries(country_sk) NOT NULL, --decimal zjada mniej, niż money, do przedyskutowania (precyzja - liczba miejsc przed i po przecinku, skala - liczba miejsc po przecinku) price money, reimbursement_amountPercent smallint, diff --git a/sql/indexes.sql b/sql/indexes.sql index 0fc29b2..c08a685 100644 --- a/sql/indexes.sql +++ b/sql/indexes.sql @@ -1,32 +1,32 @@ -DROP INDEX IF EXISTS expected_response_time_fk_ft1_index ON FT1_Registration; -CREATE INDEX expected_response_time_fk_ft1_index ON FT1_Registration(expected_response_time_fk); +DROP INDEX IF EXISTS expected_response_time_fk_ft1_index ON FT_Registration; +-- CREATE INDEX expected_response_time_fk_ft1_index ON FT_Registration(expected_response_time_fk); -DROP INDEX IF EXISTS submission_date_fk_ft1_index ON FT1_Registration; -CREATE INDEX submission_date_fk_ft1_index ON FT1_Registration(submission_date_fk); +DROP INDEX IF EXISTS submission_date_fk_ft1_index ON FT_Registration; +-- CREATE INDEX submission_date_fk_ft1_index ON FT_Registration(submission_date_fk); -DROP INDEX IF EXISTS submission_date_fk_ft1_index ON FT1_Registration; -CREATE INDEX submission_date_fk_ft1_index ON FT1_Registration(submission_date_fk); +DROP INDEX IF EXISTS submission_date_fk_ft1_index ON FT_Registration; +-- CREATE INDEX submission_date_fk_ft1_index ON FT_Registration(submission_date_fk); -DROP INDEX IF EXISTS response_time_fk_ft1_index ON FT1_Registration; -CREATE INDEX response_time_fk_ft1_index ON FT1_Registration(response_time_fk); +DROP INDEX IF EXISTS response_time_fk_ft1_index ON FT_Registration; +-- CREATE INDEX response_time_fk_ft1_index ON FT_Registration(response_time_fk); -DROP INDEX IF EXISTS drug_fk_ft1_index ON FT1_Registration; -CREATE INDEX drug_fk_ft1_index ON FT1_Registration(drug_fk); +DROP INDEX IF EXISTS drug_fk_ft1_index ON FT_Registration; +-- CREATE INDEX drug_fk_ft1_index ON FT_Registration(drug_fk); -DROP INDEX IF EXISTS factory_API_fk_ft1_index ON FT1_Registration; -CREATE INDEX factory_API_fk_ft1_index ON FT1_Registration(factory_API_fk); +DROP INDEX IF EXISTS factory_API_fk_ft1_index ON FT_Registration; +-- CREATE INDEX factory_API_fk_ft1_index ON FT_Registration(factory_API_fk); -DROP INDEX IF EXISTS factory_bulk_fk_ft1_index ON FT1_Registration; -CREATE INDEX factory_bulk_fk_ft1_index ON FT1_Registration(factory_bulk_fk); +DROP INDEX IF EXISTS factory_bulk_fk_ft1_index ON FT_Registration; +-- CREATE INDEX factory_bulk_fk_ft1_index ON FT_Registration(factory_bulk_fk); -DROP INDEX IF EXISTS factory_package_fk_ft1_index ON FT1_Registration; -CREATE INDEX factory_package_fk_ft1_index ON FT1_Registration(factory_package_fk); +DROP INDEX IF EXISTS factory_package_fk_ft1_index ON FT_Registration; +-- CREATE INDEX factory_package_fk_ft1_index ON FT_Registration(factory_package_fk); -DROP INDEX IF EXISTS country_fk_ft1_index ON FT1_Registration; -CREATE INDEX country_fk_ft1_index ON FT1_Registration(country_fk); +DROP INDEX IF EXISTS country_fk_ft1_index ON FT_Registration; +-- CREATE INDEX country_fk_ft1_index ON FT_Registration(country_fk); -DROP INDEX IF EXISTS claim_status_fk_ft1_index ON FT1_Registration; -CREATE INDEX claim_status_fk_ft1_index ON FT1_Registration(claim_status_fk); +DROP INDEX IF EXISTS claim_status_fk_ft1_index ON FT_Registration; +-- CREATE INDEX claim_status_fk_ft1_index ON FT_Registration(claim_status_fk); -DROP INDEX IF EXISTS indication_fk_ft1_index ON FT1_Registration; -CREATE INDEX indication_fk_ft1_index ON FT1_Registration(indication_fk); \ No newline at end of file +DROP INDEX IF EXISTS indication_fk_ft1_index ON FT_Registration; +-- CREATE INDEX indication_fk_ft1_index ON FT_Registration(indication_fk); \ No newline at end of file