1
0
forked from s26450/hurtownia

Zaktualizuj 'sql/create.sql'

This commit is contained in:
s26453 2018-11-27 18:15:18 +00:00
parent 9c407f4e56
commit 14cdb55b25

View File

@ -1,64 +1,108 @@
DROP TABLE IF EXISTS dim_factories; DROP TABLE IF EXISTS dim_factories;
CREATE TABLE dim_factories ( CREATE TABLE dim_factories (
factory_sk INTEGER identity(1,1) PRIMARY KEY, factory_sk INTEGER identity(1,1) PRIMARY KEY,
factory_bk NVARCHAR(100) NOT NULL, factory_bk NVARCHAR(100) NOT NULL,
factory_name NVARCHAR(250), factory_name NVARCHAR(250),
factory_country NVARCHAR(250) factory_country NVARCHAR(250)
); );
GO GO
DROP TABLE IF EXISTS dim_time; DROP TABLE IF EXISTS dim_time;
CREATE TABLE dim_time ( CREATE TABLE dim_time (
time_sk INTEGER identity(1,1) PRIMARY KEY, time_sk INTEGER identity(1,1) PRIMARY KEY,
time_bk DATE NOT NULL, time_bk DATE NOT NULL,
time_string NCHAR(10) NOT NULL, time_string NCHAR(10) NOT NULL,
year INTEGER, year INTEGER,
month INTEGER, month INTEGER,
day INTEGER, day INTEGER,
quarter INTEGER quarter INTEGER
); );
GO GO
DROP TABLE IF EXISTS dim_drugs; DROP TABLE IF EXISTS dim_drugs;
CREATE TABLE dim_drugs ( CREATE TABLE dim_drugs (
drug_sk INTEGER identity(1, 1) PRIMARY KEY, drug_sk INTEGER identity(1, 1) PRIMARY KEY,
DrugProductId INTEGER NOT NULL, -- business key DrugProductId INTEGER NOT NULL, -- business key
RecordStatus CHAR(1), -- A for active, D for deactivated RecordStatus CHAR(1), -- A for active, D for deactivated
DrugProductName NVARCHAR(250), DrugProductName NVARCHAR(250),
RONumber NVARCHAR(20), RONumber NVARCHAR(20),
DrugProductFamilyId INTEGER, DrugProductFamilyId INTEGER,
DrugProductFamilyName NVARCHAR(250) DrugProductFamilyName NVARCHAR(250)
); );
GO GO
DROP TABLE IF EXISTS dim_countries; DROP TABLE IF EXISTS dim_countries;
CREATE TABLE dim_countries ( CREATE TABLE dim_countries (
country_sk INTEGER identity(1, 1) PRIMARY KEY, country_sk INTEGER identity(1, 1) PRIMARY KEY,
country_code NVARCHAR(2), -- business key country_code NVARCHAR(2), -- business key
country_name NVARCHAR(250) country_name NVARCHAR(250)
); );
DROP TABLE IF EXISTS dim_claim_statuses; DROP TABLE IF EXISTS dim_claim_statuses;
CREATE TABLE dim_claim_statuses ( CREATE TABLE dim_claim_statuses (
status_sk INTEGER identity(1, 1) PRIMARY KEY, status_sk INTEGER identity(1, 1) PRIMARY KEY,
status_code VARCHAR(1) NOT NULL, -- A for Accepted, D for Declined, W for Waiting status_code VARCHAR(1) NOT NULL, -- A for Accepted, D for Declined, W for Waiting
status_description NVARCHAR(50) status_description NVARCHAR(50)
); );
GO GO
-- insert statuses -- insert statuses
INSERT INTO dim_claim_statuses(status_code, status_description) INSERT INTO dim_claim_statuses(status_code, status_description)
VALUES VALUES
('A', 'Accepted'), ('A', 'Accepted'),
('D', 'Declined'), ('D', 'Declined'),
('W', 'Waiting'); ('W', 'Waiting');
GO GO
DROP TABLE IF EXISTS dim_indications; DROP TABLE IF EXISTS dim_indications;
CREATE TABLE dim_indications ( CREATE TABLE dim_indications (
indication_sk INTEGER identity(1, 1) PRIMARY KEY, indication_sk INTEGER identity(1, 1) PRIMARY KEY,
IndicationId INTEGER NOT NULL, IndicationId INTEGER NOT NULL,
RecordStatus CHAR(1), RecordStatus CHAR(1),
IndicationDescription NVARCHAR(500) 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 GO