diff --git a/database/db_scripts/create_db.sql b/database/db_scripts/create_db.sql index 88cc2f3..343c50e 100644 --- a/database/db_scripts/create_db.sql +++ b/database/db_scripts/create_db.sql @@ -1,144 +1,170 @@ -CREATE DATABASE 'webshop' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; - --- example link: https://fabric.inc/blog/commerce/ecommerce-database-design-example - -CREATE TABLE 'user' +CREATE TABLE `discount` ( - id int NOT NULL AUTO_INCREMENT, - lower_name varchar(255), - name varchar(255) NOT NULL, - full_name varchar(255), - email varchar(255) NOT NULL, - passwd varchar(255), - passwd_hash_algo varchar(255), - is_admin bool, - created_at timestamp, - modified_at timestamp, - PRIMARY KEY (id), - UNIQUE (email, passwd) + `deleted_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `description` TEXT NOT NULL, + `discount_percent` DECIMAL(8, 2) NOT NULL, + `modified_at` INT(8) NOT NULL, + `created_at` INT(8) NOT NULL, + `active` BOOLEAN NOT NULL ); - -CREATE TABLE 'user_address' +CREATE TABLE `user_address` ( - id int, - user_id int, - address_line1 varchar(255), - address_line2 varchar(255), - city varchar(255), - postal_code varchar(255), - country varchar(2), - telephone varchar(255), - mobile varchar(255), - UNIQUE (telephone, mobile, user_id) + `address_line1` VARCHAR(255) NOT NULL, + `city` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `country` VARCHAR(2) NOT NULL, + `user_id` INT UNSIGNED NOT NULL, + `mobile` VARCHAR(255) NOT NULL, + `postal_code` INT NOT NULL, + `address_line2` VARCHAR(255) NOT NULL, + `telephone` VARCHAR(255) NOT NULL ); - -CREATE TABLE 'user_payment' +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_mobile_unique` (`mobile`); +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_telephone_unique` (`telephone`); +CREATE TABLE `product_inventory` ( - id int, - user_id int, - payment_type varchar(255), - provider varchar(255), - account_no int, - expiry date, - UNIQUE (user_id) + `created_at` INT(8) NOT NULL, + `modified_at` INT(8) NOT NULL, + `quantity` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `deleted_at` INT(8) NOT NULL ); - -CREATE TABLE 'shopping_session' +CREATE TABLE `payment_details` ( - id int, - user_id varchar(255), - total decimal, - created_at timestamp, - modified_at timestamp, - UNIQUE (user_id) + `order_id` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `status` VARCHAR(255) NOT NULL, + `provider` VARCHAR(255) NOT NULL, + `modified_at` INT(8) NOT NULL, + `amount` INT NOT NULL, + `created_at` INT(8) NOT NULL ); - -CREATE TABLE 'cart_item' +CREATE TABLE `order_details` ( - id int, - session_id int, - product_id int, - quantity int, - created_at timestamp, - modified_at timestamp + `payment_id` INT UNSIGNED NOT NULL, + `total` DECIMAL(8, 2) NOT NULL, + `modified_at` INT(8) NOT NULL, + `created_at` INT(8) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT UNSIGNED NOT NULL ); - -CREATE TABLE 'payment_details' +CREATE TABLE `order_items` ( - id int, - order_id int, - amount int, - provider varchar(255), - status varchar(255), - created_at timestamp, - modified_at timestamp + `modified_at` INT(8) NOT NULL, + `user_id` BIGINT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `quantity` INT NOT NULL, + `order_id` INT UNSIGNED NOT NULL, + `created_at` INT(8) NOT NULL, + `product_id` INT UNSIGNED NOT NULL ); - -CREATE TABLE 'order_items' +CREATE TABLE `user_payment` ( - id int, - order_id int, - product_id int, - quantity int, - created_at timestamp, - modified_at timestamp + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `provider` VARCHAR(255) NOT NULL, + `account_no` VARCHAR(255) NOT NULL, + `expiry` DATE NOT NULL, + `payment_type` VARCHAR(255) NOT NULL, + `user_id` INT UNSIGNED NOT NULL ); - -CREATE TABLE 'order_details' +CREATE TABLE `product` ( - id int, - user_id varchar(255), - total decimal, - payment_id int, - created_at timestamp, - modified_at timestamp + `category_id` INT UNSIGNED NOT NULL, + `model` VARCHAR(255) NOT NULL, + `color` VARCHAR(255) NOT NULL, + `engine` VARCHAR(255) NOT NULL, + `description` TEXT NOT NULL, + `make` VARCHAR(255) NOT NULL, + `inventory_id` INT UNSIGNED NOT NULL, + `discount_id` INT UNSIGNED NOT NULL, + `created_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `deleted_at` INT(8) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `modified_at` INT(8) NOT NULL, + `price` DECIMAL(8, 2) NOT NULL ); - -CREATE TABLE 'product' +CREATE TABLE `product_category` ( - id int NOT NULL, - name varchar(255), - color varchar(255), - make varchar(255), - model varchar(255) NOT NULL, - engine varchar(255), - description text, - category_id int, - inventory_id int, - price decimal, - discount_id int, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + `created_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `modified_at` INT(8) NOT NULL, + `desc` TEXT NOT NULL, + `deleted_at` INT(8) NOT NULL ); - -CREATE TABLE 'product_category' +CREATE TABLE `user` ( - id int, - name varchar(255), - description text, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + `is_active` BOOLEAN NOT NULL, + `lower_name` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NOT NULL, + `passwd_hash_algo` VARCHAR(255) NOT NULL, + `modified_at` INT(8) NOT NULL, + `is_admin` BOOLEAN NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `passwd` VARCHAR(255) NOT NULL ); - -CREATE TABLE 'product_inventory' +ALTER TABLE + `user` + ADD UNIQUE `user_email_unique` (`email`); +CREATE TABLE `shopping_session` ( - id int, - quantity int, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `user_id` INT UNSIGNED NOT NULL, + `modified_at` INT(8) NOT NULL, + `total` DECIMAL(8, 2) NOT NULL ); - -CREATE TABLE 'discount' +CREATE TABLE `cart_item` ( - id int, - name varchar(255), - description text, - discount_percent decimal, - active bool, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp -) \ No newline at end of file + `product_id` INT UNSIGNED NOT NULL, + `session_id` INT UNSIGNED NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `modified_at` INT(8) NOT NULL, + `quantity` INT NOT NULL +); +ALTER TABLE + `product` + ADD CONSTRAINT `product_inventory_id_foreign` FOREIGN KEY (`inventory_id`) REFERENCES `product_inventory` (`id`); +ALTER TABLE + `order_items` + ADD CONSTRAINT `order_items_order_id_foreign` FOREIGN KEY (`order_id`) REFERENCES `order_details` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `product_category` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `order_items` + ADD CONSTRAINT `order_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `user_address` + ADD CONSTRAINT `user_address_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payment_details` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_discount_id_foreign` FOREIGN KEY (`discount_id`) REFERENCES `discount` (`id`); +ALTER TABLE + `user_payment` + ADD CONSTRAINT `user_payment_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `shopping_session` + ADD CONSTRAINT `shopping_session_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `shopping_session` (`id`); \ No newline at end of file diff --git a/database/db_scripts/delete_db.sql b/database/db_scripts/delete_db.sql index 6549ee6..29a0cf7 100644 --- a/database/db_scripts/delete_db.sql +++ b/database/db_scripts/delete_db.sql @@ -1,12 +1,24 @@ -DROP TABLE IF EXISTS 'user'; -DROP TABLE IF EXISTS 'user_address'; -DROP TABLE IF EXISTS 'user_payment'; -DROP TABLE IF EXISTS 'shopping_session'; -DROP TABLE IF EXISTS 'cart_item'; -DROP TABLE IF EXISTS 'payment_details'; -DROP TABLE IF EXISTS 'order_items'; -DROP TABLE IF EXISTS 'order_details'; -DROP TABLE IF EXISTS 'product'; -DROP TABLE IF EXISTS 'product_category'; -DROP TABLE IF EXISTS 'product_inventory'; -DROP TABLE IF EXISTS 'discount'; +drop table if exists cart_item; + +drop table if exists discount; + +drop table if exists oder_items; + +drop table if exists order_details; + +drop table if exists payment_details; + +drop table if exists product; + +drop table if exists product_category; + +drop table if exists product_inventory; + +drop table if exists shopping_session; + +drop table if exists user; + +drop table if exists user_address; + +drop table if exists user_payment; + diff --git a/database/query/get_users.js b/database/query/get_users.js index 8669762..f899821 100644 --- a/database/query/get_users.js +++ b/database/query/get_users.js @@ -3,14 +3,14 @@ const mysql = require('mysql'); const connection = mysql.createConnection({ host: "localhost", user: "root", - password: "root", + password: "", database: "webshop" }); connection.connect(function (err) { if (err) throw err; console.log("Connected to database"); - connection.query("SELECT * FROM users", function (err, result) { + connection.query("SELECT * FROM user", function (err, result) { if (err) throw err; console.log(result); }) diff --git a/scripts/login.js b/scripts/login.js index dbef5a6..6d17a2a 100644 --- a/scripts/login.js +++ b/scripts/login.js @@ -2,6 +2,6 @@ let nameEl = document.getElementById("loginMail"); let passwordEl = document.getElementById("loginPassword"); function login() { - //console.log(nameEl.value) - //console.log(passwordEl.value) + console.log(nameEl.value) + console.log(passwordEl.value) } \ No newline at end of file