100 lines
2.9 KiB
SQL
100 lines
2.9 KiB
SQL
-- All necessary tables for the borrowing system
|
|
|
|
-- IMPORTANT: You need mySQL version 8.0 or newer!
|
|
|
|
CREATE TABLE `users` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`username` varchar(100) NOT NULL,
|
|
`password` varchar(255) NOT NULL,
|
|
`role` int DEFAULT NULL,
|
|
`entry_created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `username` (`username`)
|
|
);
|
|
|
|
CREATE TABLE `admins` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`username` varchar(100) NOT NULL,
|
|
`password` varchar(255) NOT NULL,
|
|
`first_name` varchar(255) NOT NULL,
|
|
`last_name` varchar(255) NOT NULL,
|
|
`entry_created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `username` (`username`)
|
|
);
|
|
|
|
CREATE TABLE `loans` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`username` varchar(100) NOT NULL,
|
|
`loan_code` int NOT NULL,
|
|
`start_date` timestamp NOT NULL,
|
|
`end_date` timestamp NOT NULL,
|
|
`take_date` timestamp NULL DEFAULT NULL,
|
|
`returned_date` timestamp NULL DEFAULT NULL,
|
|
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`loaned_items_id` json NOT NULL DEFAULT ('[]'),
|
|
`loaned_items_name` json NOT NULL DEFAULT ('[]'),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `loan_code` (`loan_code`)
|
|
);
|
|
|
|
CREATE TABLE `items` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`item_name` varchar(255) NOT NULL,
|
|
`can_borrow_role` INT NOT NULL,
|
|
`inSafe` tinyint(1) NOT NULL DEFAULT '1',
|
|
`entry_created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `item_name` (`item_name`)
|
|
);
|
|
|
|
CREATE TABLE `lockers` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`item` varchar(255) NOT NULL,
|
|
`locker_number` int NOT NULL,
|
|
`entry_created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `item` (`item`),
|
|
UNIQUE KEY `locker_number` (`locker_number`)
|
|
);
|
|
|
|
CREATE TABLE `apiKeys` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`apiKey` int NOT NULL UNIQUE,
|
|
`user` VARCHAR(255) NOT NULL,
|
|
`entry_created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `apiKey` (`apiKey`)
|
|
);
|
|
|
|
INSERT INTO `items` (`item_name`, `can_borrow_role`, `inSafe`) VALUES
|
|
('DJI 1er Mikro', 4, 1),
|
|
('DJI 2er Mikro 1', 4, 1),
|
|
('DJI 2er Mikro 2', 4, 1),
|
|
('Rode Richt Mikrofon', 2, 1),
|
|
('Kamera Stativ', 1, 0),
|
|
('SONY Kamera - inkl. Akkus und Objektiv', 1, 1),
|
|
('MacBook inkl. Adapter', 2, 0),
|
|
('SD Karten', 3, 0),
|
|
('Kameragimbal', 1, 0),
|
|
('ATEM MINI PRO', 1, 1),
|
|
('Handygimbal', 4, 0),
|
|
('Kameralüfter', 1, 1),
|
|
('Kleine Kamera 1 - inkl. Objektiv', 2, 1),
|
|
('Kleine Kamera 2 - inkl. Objektiv', 2, 1);
|
|
|
|
INSERT INTO `lockers` (`item`, `locker_number`) VALUES
|
|
('DJI 1er Mikro', 1),
|
|
('DJI 2er Mikro 1', 2),
|
|
('DJI 2er Mikro 2', 3),
|
|
('Rode Richt Mikrofon', 4),
|
|
('Kamera Stativ', 5),
|
|
('SONY Kamera - inkl. Akkus und Objektiv', 6),
|
|
('MacBook inkl. Adapter', 7),
|
|
('SD Karten', 8),
|
|
('Kameragimbal', 9),
|
|
('ATEM MINI PRO', 10),
|
|
('Handygimbal', 11),
|
|
('Kameralüfter', 12),
|
|
('Kleine Kamera 1 - inkl. Objektiv', 13),
|
|
('Kleine Kamera 2 - inkl. Objektiv', 14); |