WMGZON/scripts/create_tables.sql

68 lines
1.9 KiB
MySQL
Raw Normal View History

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 Products (id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
viewDate TIMESTAMP NOT NULL
)