Загрузка данных


CREATE DATABASE IF NOT EXISTS CartridgeDB;
USE CartridgeDB;

CREATE TABLE expenses (
	id_type INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    description TEXT
);

CREATE TABLE buildings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(150) NOT NULL
);

CREATE TABLE printer_types (
    id_type_print INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(70) NOT NULL,
    comsumption_count INT DEFAULT 0
);

CREATE TABLE printers (
    id_print INT AUTO_INCREMENT PRIMARY KEY,
    id_type_print INT,
    id_build INT,
    description TEXT,
    inventory_number VARCHAR(50) UNIQUE NOT NULL,
    accouting_number VARCHAR(50) UNIQUE NOT NULL,
    FOREIGN KEY (id_type_print) REFERENCES printer_types(id_type_print),
    FOREIGN KEY (id_build) REFERENCES buildings(id)
);

CREATE TABLE cartridges (
    id_cart INT AUTO_INCREMENT PRIMARY KEY,
    name_cart VARCHAR(100) NOT NULL,
    id_type INT,
    FOREIGN KEY (id_type) REFERENCES expenses(id_type)
);

CREATE TABLE stock_cabinets (
    id_cart INT PRIMARY KEY,
    quanity INT CHECK (quantity >= 0),
    FOREIGN KEY (id_cart) REFERENCES cartridges(id_cart)
);

CREATE TABLE histories (
    history_id BIGINT AUTO_INCREMENT PRIMARY KEY,
    date DATE NOT NULL,
    id_print INT,
    id_type_cat INT,
    FOREIGN KEY (id_print) REFERENCES printers(id_print),
    FOREIGN KEY (id_type_cat) REFERENCES expenses(id_type)
);

CREATE TABLE users (
    user_name VARCHAR(50) PRIMARY KEY,
    password_hash CHAR(64) NOT NULL
);