Model pierwotny, do którego mamy uwagi

This commit is contained in:
Wojciech Borowski-Dobrowolski 2023-12-16 09:58:41 +01:00
commit 6bd4a3a70b

145
model_hurtowni.sql Normal file
View File

@ -0,0 +1,145 @@
CREATE TABLE `fact_service` (
`service_id` int PRIMARY KEY,
`inventory_id` int ,
`service_date` int ,
`store_id` int ,
`service_cost` DECIMAL ,
`service_type_id` int
);
CREATE TABLE `dim_customer` (
`customer_id` int PRIMARY KEY,
`first_name` varchar(64) ,
`last_name` varchar(64) ,
`birth_date` DATE ,
`email` varchar(64) ,
`address` varchar(64) ,
`address2` varchar(64) ,
`city` varchar(64) ,
`country` varchar(64) ,
`postal_code` varchar(64)
);
CREATE TABLE `dim_calendar` (
`date_id` int PRIMARY KEY,
`date` DATE ,
`day_name` varchar(64) ,
`day_abbrv` varchar(64) ,
`calendar_month` int ,
`calendar_quarter` int ,
`calendar_year` int ,
`calendar_month_year` int ,
`is_weekend` BOOLEAN ,
`month_end` BOOLEAN ,
`week_num` int
);
CREATE TABLE `fact_rentals` (
`rental_id` int PRIMARY KEY,
`customer_id` int ,
`store_id` int ,
`staff_id` int ,
`inventory_id` int ,
`equipment_hash_FK` INT ,
`rent_start` int ,
`rent_end` int ,
`payment_date` int ,
`payment_deadline` int ,
`rent_value` DECIMAL
);
CREATE TABLE `dim_equipment` (
`equipment_id` int PRIMARY KEY,
`name` TEXT ,
`type` TEXT ,
`version` TEXT
);
CREATE TABLE `dim_store` (
`sk_store_id` int PRIMARY KEY,
`nk_store_id` int ,
`store_manager_id` int ,
`store_manager_start_date` DATE ,
`store_manager_end_date` DATE ,
`active_manager` varchar(64) ,
`store_address` varchar(64) ,
`store_address2` varchar(64) ,
`store_postal_code` varchar(64) ,
`store_city` varchar(64) ,
`store_country` varchar(64)
);
CREATE TABLE `bridge_equipment` (
`equipment_hash_DK` int PRIMARY KEY,
`id_FK` int
);
CREATE TABLE `dim_service_type` (
`service_type_id` INT PRIMARY KEY,
`service_name` varchar(64)
);
CREATE TABLE `dim_staff` (
`staff_id` int PRIMARY KEY,
`first_name` varchar(64) ,
`last_name` varchar(64) ,
`address` varchar(64) ,
`address2` varchar(64) ,
`city` varchar(64) ,
`country` varchar(64) ,
`manager_id` int ,
`email` varchar(64)
);
CREATE TABLE `dim_cars` (
`inventory_id` int PRIMARY KEY,
`production_year` int ,
`model` varchar(64) ,
`producer` varchar(64) ,
`fuel_type` varchar(64) ,
`license_plate` varchar(64) ,
`store_id` int ,
`purchase_price` DECIMAL ,
`sell_price` DECIMAL ,
`availability` varchar(64) ,
`sold` BOOLEAN
);
ALTER TABLE `fact_service` ADD CONSTRAINT `fact_service_fk0` FOREIGN KEY (`inventory_id`) REFERENCES `dim_cars`(`inventory_id`);
ALTER TABLE `fact_service` ADD CONSTRAINT `fact_service_fk1` FOREIGN KEY (`service_date`) REFERENCES `dim_calendar`(`date_id`);
ALTER TABLE `fact_service` ADD CONSTRAINT `fact_service_fk2` FOREIGN KEY (`store_id`) REFERENCES `dim_store`(`sk_store_id`);
ALTER TABLE `fact_service` ADD CONSTRAINT `fact_service_fk3` FOREIGN KEY (`service_type_id`) REFERENCES `dim_service_type`(`service_type_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk0` FOREIGN KEY (`customer_id`) REFERENCES `dim_customer`(`customer_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk1` FOREIGN KEY (`store_id`) REFERENCES `dim_store`(`sk_store_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk2` FOREIGN KEY (`staff_id`) REFERENCES `dim_staff`(`staff_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk3` FOREIGN KEY (`inventory_id`) REFERENCES `dim_cars`(`inventory_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk4` FOREIGN KEY (`equipment_hash_FK`) REFERENCES `bridge_equipment`(`equipment_hash_DK`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk5` FOREIGN KEY (`rent_start`) REFERENCES `dim_calendar`(`date_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk6` FOREIGN KEY (`rent_end`) REFERENCES `dim_calendar`(`date_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk7` FOREIGN KEY (`payment_date`) REFERENCES `dim_calendar`(`date_id`);
ALTER TABLE `fact_rentals` ADD CONSTRAINT `fact_rentals_fk8` FOREIGN KEY (`payment_deadline`) REFERENCES `dim_calendar`(`date_id`);
ALTER TABLE `bridge_equipment` ADD CONSTRAINT `bridge_equipment_fk0` FOREIGN KEY (`id_FK`) REFERENCES `dim_equipment`(`equipment_id`);