Files
techstore/assets/db/base_db.sql
T

61 lines
2.1 KiB
SQL

DROP DATABASE IF EXISTS TechStore;
CREATE DATABASE TechStore;
USE TechStore;
CREATE TABLE Users(
UserID INTEGER PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(32),
Surname VARCHAR(32),
Email VARCHAR(256),
Password VARCHAR(255),
Role VARCHAR(8) DEFAULT 'user'
);
CREATE TABLE Categories(
CategoryID INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(64) NOT NULL
);
CREATE TABLE Products(
ProductID INTEGER PRIMARY KEY AUTO_INCREMENT,
ProductName VARCHAR(104),
Description TEXT,
CategoryID INT,
Price DECIMAL(10,2),
ImagePath VARCHAR(255),
StockQuantity INT DEFAULT 0,
FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID)
);
CREATE TABLE Orders(
OrderID INT PRIMARY KEY AUTO_INCREMENT,
UserID INT,
OrderDate DATETIME DEFAULT CURRENT_TIMESTAMP,
Total DECIMAL(10,2),
Status VARCHAR(20) DEFAULT 'pending',
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);
CREATE TABLE OrderItems(
OrderItemID INT PRIMARY KEY AUTO_INCREMENT,
OrderID INT,
ProductID INT,
Quantity INT,
Price DECIMAL(10,2),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
-- INSERIMENTO DATI
INSERT INTO Categories(Name) VALUES
('Elettronica'),('Networking'),('Telefonia');
INSERT INTO Products(ProductName,Description,CategoryID,Price,ImagePath,StockQuantity) VALUES
('Yealink T31P',"Telefono IP con PoE, Ethernet a 100M, 2 linee",3,'51.21','example/t31p.jpg',104),
('Lenovo ThinkCentre M920q','Mini PC (Ricondizionato) Intel Core i5, 512GB SSD, 16GB RAM, Windows 11 Pro',1,'299','example/tcM920q.jpg',69),
('Mercusys MS116GS Switch 16 Porte','Switch Gigabit 16 Porte, Montaggio Desktop o Rack, Plug & Play, Priorità del Traffico, Prevenzione Loop, Modalità di Isolamento, Funzionamento Silenzioso, Case in Metallo',2,'44.99','example/mercusysMS116GS.jpg',727);
-- Inserimento utente admin di base (password = changeme)
INSERT INTO Users (Name,Surname,Email,Password,Role) VALUES
('Ellen', 'Joe', 'admin@example.com', '$2y$12$zEXyLRdKvvvoH4/zuIuwYuQLA5GwsvZw2usIhxxbYyw4.uoeghe4m', 'admin');