From 01ae9124a749bd2041e4c19c1c924ea67d5ac534 Mon Sep 17 00:00:00 2001 From: Shrey Patel <118093331+shreyp2305@users.noreply.github.com> Date: Fri, 20 Oct 2023 20:56:20 -0400 Subject: [PATCH] added phase one files --- main.py | 28 ++++++++++++++++++ phase 1.sql | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 main.py create mode 100644 phase 1.sql diff --git a/main.py b/main.py new file mode 100644 index 0000000..09c65d1 --- /dev/null +++ b/main.py @@ -0,0 +1,28 @@ +import mysql.connector +from mysql.connector import Error + +try: + connection = mysql.connector.connect(host='localhost', + database='inventory', + user='root', + password='ENTER PASSWORD') + if connection.is_connected(): + db_Info = connection.get_server_info() + print("Connected to MySQL Server version ", db_Info) + cursor = connection.cursor() + cursor.execute("select database();") + record = cursor.fetchone() + print("You're connected to database: ", record) + cursor.execute('show tables;') + tables = cursor.fetchall() + print(tables) + for i in tables: + print(i) + +except Error as e: + print("Error while connecting to MySQL", e) +finally: + if connection.is_connected(): + cursor.close() + connection.close() + print("MySQL connection is closed") \ No newline at end of file diff --git a/phase 1.sql b/phase 1.sql new file mode 100644 index 0000000..e974e8e --- /dev/null +++ b/phase 1.sql @@ -0,0 +1,84 @@ +DROP DATABASE IF EXISTS inventory; +CREATE DATABASE IF NOT EXISTS inventory; + +CREATE TABLE IF NOT EXISTS USER ( + pid INT AUTO_INCREMENT, + lname VARCHAR(64) NOT NULL, + fname VARCHAR(64) NOT NULL, + password VARCHAR(32) NOT NULL, + phoneNumber INT, + email VARCHAR(128) NOT NULL, + PRIMARY KEY (pid) +); + +CREATE TABLE IF NOT EXISTS ORGANIZATION ( + organizationId INT AUTO_INCREMENT, + name VARCHAR(256) NOT NULL, + email VARCHAR(128) NOT NULL, + description VARCHAR(1024), + ownerPid INT NOT NULL, + PRIMARY KEY (organizationId), + CONSTRAINT fk_user_organization FOREIGN KEY (ownerPid) REFERENCES USER (pid) +); + +CREATE TABLE IF NOT EXISTS MANAGER ( + userPid INT NOT NULL, + organizationId INT NOT NULL, + PRIMARY KEY (userPid, organizationId), + CONSTRAINT fk_user_manager FOREIGN KEY (userPid) REFERENCES USER (pid), + CONSTRAINT fk_organization_manager FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId) +); + +CREATE TABLE IF NOT EXISTS REQUEST ( + requestId INT NOT NULL, + userPid INT NOT NULL, + organizationId INT NOT NULL, + status ENUM('PENDING', 'ACCEPTED', 'DECLINED') NOT NULL, + description VARCHAR(256), + type ENUM('JOIN', 'ITEM') NOT NULL, + PRIMARY KEY (requestId), + CONSTRAINT fk_user_request FOREIGN KEY (userPid) REFERENCES USER (pid), + CONSTRAINT fk_organization_request FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId) +); + +CREATE TABLE IF NOT EXISTS LOCATION ( + locationId INT AUTO_INCREMENT, + location VARCHAR(256), + organizationId INT NOT NULL, + PRIMARY KEY (locationId), + CONSTRAINT fk_organization_location FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId) +); + +CREATE TABLE IF NOT EXISTS ITEM ( + itemId INT AUTO_INCREMENT, + name VARCHAR(128) NOT NULL, + description VARCHAR(256), + ownerPid INT, + quantity INT NOT NULL, + category VARCHAR(128), + status ENUM('AVAILABLE', 'BORROWED', 'LISTED', 'SOLD') NOT NULL, + locationId INT NOT NULL, + organizationId INT NOT NULL, + PRIMARY KEY (itemId), + CONSTRAINT fk_location_item FOREIGN KEY (locationId) REFERENCES LOCATION (locationId), + CONSTRAINT fk_organiztion_item FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId) +); + +CREATE TABLE IF NOT EXISTS LISTING ( + listingId INT AUTO_INCREMENT, + itemId INT NOT NULL, + price DECIMAL(6,2) NOT NULL, + status ENUM('AVAILABLE', 'SOLD') NOT NULL, + dateListed TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + PRIMARY KEY (listingId), + CONSTRAINT fk_item_listing FOREIGN KEY (itemId) REFERENCES ITEM (itemId) +); + +CREATE TABLE IF NOT EXISTS FAVORITE ( + userPid INT NOT NULL, + listingId INT NOT NULL, + PRIMARY KEY (userPid, listingId), + CONSTRAINT fk_user_favorite FOREIGN KEY (userPid) REFERENCES USER (pid), + CONSTRAINT fk_listing_favorite FOREIGN KEY (listingId) REFERENCES LISTING (listingId) +); + -- GitLab