juhamikael / ICT-Project-Feedback-Solution

1 stars 0 forks source link

Tietokanta suunnittelu #10

Open Kinnari98 opened 11 months ago

Kinnari98 commented 11 months ago

Suunnitellaan projektille SQLite tietokanta jota käytetään paikallisesti. Käytetään apuna GPT4.

Kinnari98 commented 11 months ago

Ja tätä siis hoitaa Juha ja Kalle

juhamikael commented 11 months ago

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
);

Selitys tauluille


Relationships

juhamikael commented 11 months ago

Luodaan taulut kansioon src\lib\db\schema