forked from s26450/hurtownia
Zaktualizuj 'sql/create.sql'
This commit is contained in:
parent
9c407f4e56
commit
14cdb55b25
170
sql/create.sql
170
sql/create.sql
@ -1,64 +1,108 @@
|
||||
DROP TABLE IF EXISTS dim_factories;
|
||||
CREATE TABLE dim_factories (
|
||||
factory_sk INTEGER identity(1,1) PRIMARY KEY,
|
||||
factory_bk NVARCHAR(100) NOT NULL,
|
||||
factory_name NVARCHAR(250),
|
||||
factory_country NVARCHAR(250)
|
||||
);
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_time;
|
||||
CREATE TABLE dim_time (
|
||||
time_sk INTEGER identity(1,1) PRIMARY KEY,
|
||||
time_bk DATE NOT NULL,
|
||||
time_string NCHAR(10) NOT NULL,
|
||||
year INTEGER,
|
||||
month INTEGER,
|
||||
day INTEGER,
|
||||
quarter INTEGER
|
||||
);
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_drugs;
|
||||
CREATE TABLE dim_drugs (
|
||||
drug_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
DrugProductId INTEGER NOT NULL, -- business key
|
||||
RecordStatus CHAR(1), -- A for active, D for deactivated
|
||||
DrugProductName NVARCHAR(250),
|
||||
RONumber NVARCHAR(20),
|
||||
DrugProductFamilyId INTEGER,
|
||||
DrugProductFamilyName NVARCHAR(250)
|
||||
);
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_countries;
|
||||
CREATE TABLE dim_countries (
|
||||
country_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
country_code NVARCHAR(2), -- business key
|
||||
country_name NVARCHAR(250)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS dim_claim_statuses;
|
||||
CREATE TABLE dim_claim_statuses (
|
||||
status_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
status_code VARCHAR(1) NOT NULL, -- A for Accepted, D for Declined, W for Waiting
|
||||
status_description NVARCHAR(50)
|
||||
);
|
||||
GO
|
||||
|
||||
-- insert statuses
|
||||
INSERT INTO dim_claim_statuses(status_code, status_description)
|
||||
VALUES
|
||||
('A', 'Accepted'),
|
||||
('D', 'Declined'),
|
||||
('W', 'Waiting');
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_indications;
|
||||
CREATE TABLE dim_indications (
|
||||
indication_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
IndicationId INTEGER NOT NULL,
|
||||
RecordStatus CHAR(1),
|
||||
IndicationDescription NVARCHAR(500)
|
||||
);
|
||||
DROP TABLE IF EXISTS dim_factories;
|
||||
CREATE TABLE dim_factories (
|
||||
factory_sk INTEGER identity(1,1) PRIMARY KEY,
|
||||
factory_bk NVARCHAR(100) NOT NULL,
|
||||
factory_name NVARCHAR(250),
|
||||
factory_country NVARCHAR(250)
|
||||
);
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_time;
|
||||
CREATE TABLE dim_time (
|
||||
time_sk INTEGER identity(1,1) PRIMARY KEY,
|
||||
time_bk DATE NOT NULL,
|
||||
time_string NCHAR(10) NOT NULL,
|
||||
year INTEGER,
|
||||
month INTEGER,
|
||||
day INTEGER,
|
||||
quarter INTEGER
|
||||
);
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_drugs;
|
||||
CREATE TABLE dim_drugs (
|
||||
drug_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
DrugProductId INTEGER NOT NULL, -- business key
|
||||
RecordStatus CHAR(1), -- A for active, D for deactivated
|
||||
DrugProductName NVARCHAR(250),
|
||||
RONumber NVARCHAR(20),
|
||||
DrugProductFamilyId INTEGER,
|
||||
DrugProductFamilyName NVARCHAR(250)
|
||||
);
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_countries;
|
||||
CREATE TABLE dim_countries (
|
||||
country_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
country_code NVARCHAR(2), -- business key
|
||||
country_name NVARCHAR(250)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS dim_claim_statuses;
|
||||
CREATE TABLE dim_claim_statuses (
|
||||
status_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
status_code VARCHAR(1) NOT NULL, -- A for Accepted, D for Declined, W for Waiting
|
||||
status_description NVARCHAR(50)
|
||||
);
|
||||
GO
|
||||
|
||||
-- insert statuses
|
||||
INSERT INTO dim_claim_statuses(status_code, status_description)
|
||||
VALUES
|
||||
('A', 'Accepted'),
|
||||
('D', 'Declined'),
|
||||
('W', 'Waiting');
|
||||
GO
|
||||
|
||||
DROP TABLE IF EXISTS dim_indications;
|
||||
CREATE TABLE dim_indications (
|
||||
indication_sk INTEGER identity(1, 1) PRIMARY KEY,
|
||||
IndicationId INTEGER NOT NULL,
|
||||
RecordStatus CHAR(1),
|
||||
IndicationDescription NVARCHAR(500)
|
||||
);
|
||||
GO
|
||||
|
||||
--TABELE FAKTÓW
|
||||
--to by było do SQL Server'a < 2016
|
||||
--IF OBJECT_ID('dbo.FT1_Registartion') IS NOT NULL DROP TABLE dbo.MyCategories;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS FT1_Registartion;
|
||||
CREATE TABLE FT1_Registartion (
|
||||
id INTEGER identity(1,1) PRIMARY KEY,
|
||||
expected_response integer,
|
||||
submission_date integer,
|
||||
response_time integer,
|
||||
drug_sk integer,
|
||||
factory_sk_API integer,
|
||||
factory_sk_bulk integer,
|
||||
factory_sk_package integer,
|
||||
country_sk integer,
|
||||
--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_sk integer,
|
||||
indication_sk integer,
|
||||
claim number integer,
|
||||
-- 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_Registartion (
|
||||
id INTEGER identity(1,1) PRIMARY KEY,
|
||||
claim_status_sk integer,
|
||||
drug_sk integer,
|
||||
submission_date integer,
|
||||
expected_response integer,
|
||||
country_sk integer,
|
||||
indication_sk integer,
|
||||
registration_country integer,
|
||||
--decimal zjada mniej, niż money, do przedyskutowania (precyzja - liczba miejsc przed i po przecinku, skala - liczba miejsc po przecinku)
|
||||
price decimal(9,2),
|
||||
reimbursement_amountPercent smallint,
|
||||
--tu obliczymy jako iloczyn price * reimbursement_amountPercent
|
||||
reimbursement_amount decimal(9,2),
|
||||
|
||||
);
|
||||
GO
|
Loading…
Reference in New Issue
Block a user