commit 6bd4a3a70b7837767bd0519b94bf1e97a0f6667f Author: Wojciech Borowski-Dobrowolski Date: Sat Dec 16 09:58:41 2023 +0100 Model pierwotny, do którego mamy uwagi diff --git a/model_hurtowni.sql b/model_hurtowni.sql new file mode 100644 index 0000000..7b29d20 --- /dev/null +++ b/model_hurtowni.sql @@ -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`); + + + + + + + + + + +