68 lines
1.9 KiB
SQL
68 lines
1.9 KiB
SQL
CREATE TABLE IF NOT EXISTS Users (
|
|
id INTEGER PRIMARY KEY,
|
|
username TEXT NOT NULL UNIQUE,
|
|
password TEXT NOT NULL,
|
|
first_name TEXT NOT NULL,
|
|
last_name TEXT NOT NULL,
|
|
email TEXT NOT NULL UNIQUE,
|
|
phone TEXT NOT NULL,
|
|
role TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS Categories (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE
|
|
);
|
|
|
|
INSERT INTO Categories (name) VALUES ("Car Parts");
|
|
INSERT INTO Categories (name) VALUES ("Animals");
|
|
INSERT INTO Categories (name) VALUES ("Sports");
|
|
INSERT INTO Categories (name) VALUES ("Books");
|
|
INSERT INTO Categories (name) VALUES ("Phones");
|
|
INSERT INTO Categories (name) VALUES ("Music");
|
|
|
|
CREATE TABLE IF NOT EXISTS Products (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
image TEXT NOT NULL,
|
|
description TEXT NOT NULL,
|
|
cost DECIMAL NOT NULL,
|
|
sellerID INTEGER NOT NULL
|
|
REFERENCES Users (id)
|
|
ON DELETE CASCADE
|
|
ON UPDATE NO ACTION,
|
|
categoryID INTEGER NOT NULL
|
|
REFERENCES Categories (id)
|
|
ON DELETE CASCADE
|
|
ON UPDATE NO ACTION,
|
|
postedDate TIMESTAMP,
|
|
quantityAvailable INTEGER DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS Orders (
|
|
id INTEGER PRIMARY KEY,
|
|
sellerID TEXT NOT NULL
|
|
REFERENCES Users (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION,
|
|
total DECIMAL NOT NULL,
|
|
buyerID INTEGER NOT NULL
|
|
REFERENCES Users (id)
|
|
ON DELETE CASCADE
|
|
ON UPDATE NO ACTION,
|
|
orderDate TIMESTAMP NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS Views (
|
|
id INTEGER PRIMARY KEY,
|
|
userID INTEGER
|
|
REFERENCES Users (id)
|
|
ON DELETE CASCADE
|
|
ON UPDATE NO ACTION,
|
|
productID INTEGER NOT NULL
|
|
REFERENCES Users (id)
|
|
ON DELETE CASCADE
|
|
ON UPDATE NO ACTION,
|
|
viewDate TIMESTAMP NOT NULL
|
|
)
|