Newer
Older
DROP DATABASE IF EXISTS inventory;
CREATE DATABASE IF NOT EXISTS inventory;
lname VARCHAR(64) NOT NULL,
fname VARCHAR(64) NOT NULL,
password VARCHAR(32) NOT NULL,
INSERT INTO USER (email, lname, fname, password, phone_number) VALUES
('johnsmith@example.com', 'Smith', 'John', 'password123', '123-456-7890'),
('alicedoe@example.com', 'Doe', 'Alice', 'securepass', '987-654-3210'),
('emilyjohnson@example.com', 'Johnson', 'Emily', 'sciencePass', '8888888888');
SELECT * FROM USER;
DELETE FROM USER;
organization_id INT AUTO_INCREMENT,
name VARCHAR(256) NOT NULL,
email VARCHAR(128) NOT NULL,
description VARCHAR(1024),
owner_email VARCHAR(128) NOT NULL,
category ENUM('ACADEMIC', 'RECREATION', 'TECHNOLOGY', 'POLITICS', 'GREEK LIFE'),
member_count INT DEFAULT 1,
PRIMARY KEY (organization_id),
CONSTRAINT fk_user_organization FOREIGN KEY (owner_email) REFERENCES USER (email)
INSERT INTO ORGANIZATION (name, email, description, owner_email, category, member_count) VALUES
('Coding Club', 'coding@example.com', 'Club for programming enthusiasts', 'johnsmith@example.com', 'TECHNOLOGY', 15),
('Chess Society', 'chesssociety@example.com', 'Organization for chess lovers', 'alicedoe@example.com', 'RECREATION', 20),
('Science Association', 'science@example.com', 'Encouraging scientific exploration', 'johnsmith@example.com', 'ACADEMIC', 30),
('Political Discussion Group', 'politics@example.com', 'Discussions on current political affairs', 'alicedoe@example.com', 'POLITICS', 25),
('Greek Life Association', 'greeklife@example.com', 'Promoting Greek culture and traditions', 'emilyjohnson@example.com', 'GREEK LIFE', 40);
CREATE TABLE IF NOT EXISTS ORGANIZATION_ROSTER (
user_email VARCHAR(128) NOT NULL,
organization_id INT NOT NULL,
type ENUM('MEMBER', 'MANAGER') NOT NULL,
PRIMARY KEY (user_email, organization_id),
CONSTRAINT fk_user_manager FOREIGN KEY (user_email) REFERENCES USER (email),
CONSTRAINT fk_organization_manager FOREIGN KEY (organization_id) REFERENCES ORGANIZATION (organization_id)
request_id INT AUTO_INCREMENT NOT NULL,
user_email VARCHAR(128) NOT NULL,
organization_id INT NOT NULL,
status ENUM('PENDING', 'ACCEPTED', 'DECLINED') NOT NULL,
description VARCHAR(256),
type ENUM('JOIN', 'ITEM') NOT NULL,
PRIMARY KEY (request_id),
CONSTRAINT fk_user_request FOREIGN KEY (user_email) REFERENCES USER (email),
CONSTRAINT fk_organization_request FOREIGN KEY (organization_id) REFERENCES ORGANIZATION (organization_id)
location_id INT AUTO_INCREMENT,
organization_id INT NOT NULL,
PRIMARY KEY (location_id),
CONSTRAINT fk_organization_location FOREIGN KEY (organization_id) REFERENCES ORGANIZATION (organization_id)
item_id INT AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
description VARCHAR(256),
owner_email VARCHAR(128),
quantity INT NOT NULL,
category VARCHAR(128),
status ENUM('AVAILABLE', 'BORROWED', 'LISTED', 'SOLD') NOT NULL,
location_id INT NOT NULL,
organization_id INT NOT NULL,
PRIMARY KEY (item_id),
CONSTRAINT fk_location_item FOREIGN KEY (location_id) REFERENCES LOCATION (location_id),
CONSTRAINT fk_organiztion_item FOREIGN KEY (organization_id) REFERENCES ORGANIZATION (organization_id)
listing_id INT AUTO_INCREMENT,
item_id INT NOT NULL,
price DECIMAL(6,2) NOT NULL,
status ENUM('AVAILABLE', 'SOLD') NOT NULL,
date_listed TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (listing_id),
CONSTRAINT fk_item_listing FOREIGN KEY (item_id) REFERENCES ITEM (item_id)
user_email VARCHAR(128) NOT NULL,
listing_id INT NOT NULL,
PRIMARY KEY (user_email, listing_id),
CONSTRAINT fk_user_favorite FOREIGN KEY (user_email) REFERENCES USER (email),
CONSTRAINT fk_listing_favorite FOREIGN KEY (listing_id) REFERENCES LISTING (listing_id)