Загрузка данных
CREATE DATABASE IF NOT EXISTS bicycle_store_db
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE bicycle_store_db;
DROP TABLE IF EXISTS Order_Product;
DROP TABLE IF EXISTS Orders;
DROP TABLE IF EXISTS Product;
DROP TABLE IF EXISTS Users;
DROP TABLE IF EXISTS Roles;
DROP TABLE IF EXISTS Orders_Status;
DROP TABLE IF EXISTS Pickup_Point;
DROP TABLE IF EXISTS Category;
DROP TABLE IF EXISTS Manufacturer;
DROP TABLE IF EXISTS Provider;
CREATE TABLE Roles
(
Roles_ID INT AUTO_INCREMENT PRIMARY KEY,
Roles_Name VARCHAR(50) NOT NULL UNIQUE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Users
(
Users_ID INT AUTO_INCREMENT PRIMARY KEY,
Users_Surename VARCHAR(100) NOT NULL,
Users_Name VARCHAR(100) NOT NULL,
Users_Login VARCHAR(100) NOT NULL UNIQUE,
Users_Pasword VARCHAR(255) NOT NULL,
Roles_ID INT NOT NULL,
CONSTRAINT FK_Users_Roles FOREIGN KEY (Roles_ID) REFERENCES Roles (Roles_ID) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Category
(
Category_ID INT AUTO_INCREMENT PRIMARY KEY,
Category_Name VARCHAR(100) NOT NULL UNIQUE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Manufacturer
(
Manufacturer_ID INT AUTO_INCREMENT PRIMARY KEY,
Manufacturer_Name VARCHAR(100) NOT NULL UNIQUE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Provider
(
Provider_ID INT AUTO_INCREMENT PRIMARY KEY,
Provider_Name VARCHAR(100) NOT NULL UNIQUE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Product
(
Product_ID INT AUTO_INCREMENT PRIMARY KEY,
Product_Article VARCHAR(50) NULL UNIQUE,
Product_Name VARCHAR(200) NOT NULL,
Product_Description TEXT NULL,
Category_ID INT NOT NULL,
Manufacturer_ID INT NOT NULL,
Provider_ID INT NOT NULL,
Product_Cost DECIMAL(10, 2) NOT NULL,
Product_Unit VARCHAR(20) NOT NULL,
Product_Discount_Amount DECIMAL(5, 2) NOT NULL,
Product_Quantity_In_Stock INT NOT NULL,
Product_Photo_Path VARCHAR(255) NULL,
CONSTRAINT FK_Product_Category FOREIGN KEY (Category_ID) REFERENCES Category (Category_ID) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT FK_Product_Manufacturer FOREIGN KEY (Manufacturer_ID) REFERENCES Manufacturer (Manufacturer_ID) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT FK_Product_Provider FOREIGN KEY (Provider_ID) REFERENCES Provider (Provider_ID) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Orders_Status
(
Status_ID INT AUTO_INCREMENT PRIMARY KEY,
Status_Name VARCHAR(50) NOT NULL UNIQUE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Pickup_Point
(
Pickup_Point_ID INT AUTO_INCREMENT PRIMARY KEY,
Addres VARCHAR(255) NOT NULL UNIQUE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Orders
(
Orders_ID INT AUTO_INCREMENT PRIMARY KEY,
Orders_Article VARCHAR(50) NOT NULL UNIQUE,
Orders_Date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
Orders_Delivery_Date DATETIME NULL,
Pickup_Point_ID INT NOT NULL,
Status_ID INT NOT NULL,
Users_ID INT NULL,
CONSTRAINT FK_Orders_Pickup_Point FOREIGN KEY (Pickup_Point_ID) REFERENCES Pickup_Point (Pickup_Point_ID) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT FK_Orders_Status FOREIGN KEY (Status_ID) REFERENCES Orders_Status (Status_ID) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT FK_Orders_Users FOREIGN KEY (Users_ID) REFERENCES Users (Users_ID) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Orders_Product
(
Orders_ID INT NOT NULL,
Product_ID INT NOT NULL,
Count INT NOT NULL,
PRIMARY KEY (Orders_ID, Product_ID),
CONSTRAINT FK_Orders_Product_Orders FOREIGN KEY (Orders_ID) REFERENCES Orders (Orders_ID) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_Order_Product_Product FOREIGN KEY (Product_ID) REFERENCES Product (Product_ID) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;