-- Crearea bazei de date CREATE DATABASE IF NOT EXISTS biblioteca_parohie; USE biblioteca_parohie; -- ===================== -- Tabelul users -- ===================== CREATE TABLE users ( id_user INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(150) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, nume_complet VARCHAR(200), rol ENUM('admin', 'bibliotecar') DEFAULT 'bibliotecar', status ENUM('activ', 'dezactivat') DEFAULT 'activ', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- ===================== -- Tabelul carti -- ===================== CREATE TABLE carti ( id_carte INT AUTO_INCREMENT PRIMARY KEY, titlu VARCHAR(255) NOT NULL, autor VARCHAR(255), an_publicare INT, categorie VARCHAR(150), cod_bare VARCHAR(50) UNIQUE, -- pentru scaner exemplare_totale INT DEFAULT 1, exemplare_disponibile INT DEFAULT 1, coperta VARCHAR(255), -- aici salvăm numele fișierului (ex: carte123.jpg) observatii TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- ===================== -- Tabelul membri -- ===================== CREATE TABLE membri ( id_membru INT AUTO_INCREMENT PRIMARY KEY, nume_complet VARCHAR(200) NOT NULL, email VARCHAR(150) UNIQUE, telefon VARCHAR(50), adresa VARCHAR(255), data_inregistrarii DATE DEFAULT CURRENT_DATE, status ENUM('activ', 'inactiv') DEFAULT 'activ' ); -- ===================== -- Tabelul imprumuturi -- ===================== CREATE TABLE imprumuturi ( id_imprumut INT AUTO_INCREMENT PRIMARY KEY, id_carte INT NOT NULL, id_membru INT NOT NULL, data_imprumut DATE DEFAULT CURRENT_DATE, data_returnare DATE, returnata ENUM('da', 'nu') DEFAULT 'nu', observatii TEXT, FOREIGN KEY (id_carte) REFERENCES carti(id_carte), FOREIGN KEY (id_membru) REFERENCES membri(id_membru) );