From 0d3de4f70586a0bfbf9098ded27cbbb961605b42 Mon Sep 17 00:00:00 2001 From: Theis Gaedigk Date: Thu, 30 Oct 2025 13:55:16 +0100 Subject: [PATCH] added new data scheme --- backend/schemeV2.sql | 110 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 backend/schemeV2.sql diff --git a/backend/schemeV2.sql b/backend/schemeV2.sql new file mode 100644 index 0000000..d5999b2 --- /dev/null +++ b/backend/schemeV2.sql @@ -0,0 +1,110 @@ +-- 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 `users` ( + id int NOT NULL AUTO_INCREMENT, + username varchar(100) NOT NULL UNIQUE, + password varchar(255) NOT NULL, + role int NOT NULL, + entry_created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP, + isAdmin boolean NOT NULL DEFAULT false, + PRIMARY KEY (id) +) + +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 ('[]'), + `deleted` bool NOT NULL DEFAULT false, + 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`) +); + +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); \ No newline at end of file