Open Kinnari98 opened 11 months ago
Ja tätä siis hoitaa Juha ja Kalle
Tietokannan skeema versio 1:
-- Users Table
CREATE TABLE Users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
email TEXT UNIQUE NOT NULL,
firstName TEXT,
lastName TEXT
);
-- Categories Table
CREATE TABLE Categories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
-- Subcategories Table
CREATE TABLE Subcategories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
categoryId INTEGER REFERENCES Categories(id)
);
-- Products Table
CREATE TABLE Products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
imageId TEXT NOT NULL,
name TEXT NOT NULL,
price REAL NOT NULL,
description TEXT,
quantity INTEGER NOT NULL,
categoryId INTEGER REFERENCES Categories(id),
subcategoryId INTEGER REFERENCES Subcategories(id)
);
-- Orders Table
CREATE TABLE Orders (
id INTEGER PRIMARY KEY AUTOINCREMENT,
userId INTEGER REFERENCES Users(id),
status TEXT CHECK (status IN ('Pending', 'Shipped', 'Delivered')),
totalPrice REAL NOT NULL
);
-- OrderDetails Table
CREATE TABLE OrderDetails (
id INTEGER PRIMARY KEY AUTOINCREMENT,
orderId INTEGER REFERENCES Orders(id),
productId INTEGER REFERENCES Products(id),
quantity INTEGER NOT NULL
);
-- Feedback Table
CREATE TABLE Feedback (
id INTEGER PRIMARY KEY AUTOINCREMENT,
orderId INTEGER REFERENCES Orders(id),
rating INTEGER CHECK (rating BETWEEN 1 AND 5),
comment TEXT
);
Tuotekategoriat (Categories): Sisältää kaikki tuotekategoriat, kuten "Kellot" tai "Puhelimet". Jokaisella kategorialla on yksilöllinen ID ja nimi.
Alakategoriat (Subcategories): Alakategoriat, kuten "Älykellot", jotka kuuluvat "Kellojen" kategoriaan. Jokainen alakategoria on linkitetty emokategoriaan.
Tuotteet (Products): Kaikki yksityiskohdat myytävistä tuotteista. Taulussa suora viite Cloudinary-kuvan ID:hen sekä yksityiskohdat, kuten nimi, hinta, kuvaus, jäljellä oleva määrä sekä mihin kategoriaan ja alakategoriaan se kuuluu.
Käyttäjät (Users): Tallennetaan käyttäjien tiedot, mukaan lukien yksilöllinen ID, käyttäjänimi, sähköposti. (WIP)
Tilaukset (Orders): Pitää kirjaa kaikista tilauksista. Jokaisella tilauksella on yksilöllinen ID, joka on linkitetty käyttäjään ja sillä on tila, kuten "Lähetetty" tai "Odottaa". (WIP)
Tilauksen yksityiskohdat (OrderDetails): Linkittää tilaukset tuotteisiin ja määrittelee, mitkä tuotteet ovat tilauksessa ja missä määrin.
Palaute (Feedback): Sisältää käyttäjien antamat arvostelut tai arvosanat. Jokainen merkintä on linkitetty tilaukseen ja sisältää arvosanan ja valinnaisen kommentin.
Luodaan taulut kansioon src\lib\db\schema
users
table
Suunnitellaan projektille SQLite tietokanta jota käytetään paikallisesti. Käytetään apuna GPT4.
Turso
palvelimelle