Untitled
unknown
plain_text
a year ago
7.9 kB
3
Indexable
-- User table to store user information CREATE TABLE user ( user_id INT AUTO_INCREMENT PRIMARY KEY, user_account VARCHAR(250) CHARACTER SET utf8mb4 NOT NULL, user_password VARCHAR(100) CHARACTER SET utf8mb4 NOT NULL, user_create_time VARCHAR(20) NOT NULL, user_deleted TINYINT(1) NOT NULL ); -- Role table to store user roles CREATE TABLE role ( role_id INT AUTO_INCREMENT PRIMARY KEY, role_name VARCHAR(20) CHARACTER SET utf8mb4 NOT NULL ); -- User Role table to store the relationship between users and roles CREATE TABLE user_role ( user_role_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, role_id INT NOT NULL, FOREIGN KEY (user_id) REFERENCES user (user_id), FOREIGN KEY (role_id) REFERENCES role (role_id) ); -- Gym Department table to store gym department information CREATE TABLE gym_department ( gym_department_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, address VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, contact_number VARCHAR(20) CHARACTER SET utf8mb4 NOT NULL, logo_url VARCHAR(255) CHARACTER SET utf8mb4, opening_hours VARCHAR(255) CHARACTER SET utf8mb4, image_url VARCHAR(255) CHARACTER SET utf8mb4, description TEXT CHARACTER SET utf8mb4, FOREIGN KEY (user_id) REFERENCES user(user_id) ); -- Gym Plan table to store gym plan information CREATE TABLE gym_plan ( plan_id INT PRIMARY KEY AUTO_INCREMENT, gym_deparment_id INT NOT NULL, name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, description VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, price DECIMAL(10, 2) NOT NULL, plan_sold INT NOT NULL, plan_active_time DATETIME NOT NULL, plan_buy_time DATETIME NOT NULL, duration INT NOT NULL, validity INT NOT NULL, plan_status INT NOT NULL, image_url VARCHAR(255) CHARACTER SET utf8mb4, FOREIGN KEY (gym_deparment_id) REFERENCES gym_department(gym_department_id) ); -- type table to CREATE TABLE type ( type_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, description VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL ); -- gym_plan_type table to CREATE TABLE gym_plan_type ( gym_plan_type_id INT PRIMARY KEY AUTO_INCREMENT, gym_plan_id INT NOT NULL, type_id INT NOT NULL, FOREIGN KEY (gym_plan_id) REFERENCES gym_plan (plan_id), FOREIGN KEY (type_id) REFERENCES type (type_id) ); -- Gymer table to store gymer information CREATE TABLE gymer ( gymer_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, gym_id INT NOT NULL, image_url VARCHAR(255) CHARACTER SET utf8mb4, name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, contact_number VARCHAR(20) CHARACTER SET utf8mb4 NOT NULL, plan_id INT, check_in_time DATETIME, check_out_time DATETIME, FOREIGN KEY (user_id) REFERENCES user(user_id), FOREIGN KEY (gym_id) REFERENCES gym_department(gym_department_id), FOREIGN KEY (plan_id) REFERENCES gym_plan(plan_id) ); -- Gym Employee table to store gym employee information CREATE TABLE gym_employee ( employee_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, gym_id INT NOT NULL, name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, contact_number VARCHAR(20) CHARACTER SET utf8mb4 NOT NULL, schedule VARCHAR(255) CHARACTER SET utf8mb4, image_url VARCHAR(255) CHARACTER SET utf8mb4, FOREIGN KEY (user_id) REFERENCES user(user_id), FOREIGN KEY (gym_id) REFERENCES gym_department(gym_department_id) ); -- Shift table to store shift information CREATE TABLE shift ( shift_id INT PRIMARY KEY AUTO_INCREMENT, gymer_id INT NOT NULL, gym_department_id INT NOT NULL, employee_id INT NOT NULL, shift_name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL, start_time TIME NOT NULL, end_time TIME NOT NULL, FOREIGN KEY (employee_id) REFERENCES gym_employee(employee_id), FOREIGN KEY (gym_department_id) REFERENCES gym_department(gym_department_id), FOREIGN KEY (gymer_id) REFERENCES gymer(gymer_id) ); -- User Booking table to store user booking information CREATE TABLE gymer_booking ( booking_id INT PRIMARY KEY AUTO_INCREMENT, gymer_id INT NOT NULL, gym_department_id INT NOT NULL, shift_id INT NOT NULL, booking_time DATETIME NOT NULL, booking_status INT NOT NULL, FOREIGN KEY (gymer_id) REFERENCES gymer(gymer_id), FOREIGN KEY (gym_department_id) REFERENCES gym_department(gym_department_id), FOREIGN KEY (shift_id) REFERENCES shift(shift_id) ); -- User Cart table to store user cart information CREATE TABLE user_cart ( cart_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, plan_id INT NOT NULL, quantity INT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(user_id), FOREIGN KEY (plan_id) REFERENCES gym_plan(plan_id) ); -- User Wallet table to store user wallet information CREATE TABLE user_wallet ( wallet_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, balance DECIMAL(10, 2) DEFAULT 0.0, FOREIGN KEY (user_id) REFERENCES user(user_id) ); -- User Transaction table to store user transaction information CREATE TABLE user_transaction ( transaction_id INT PRIMARY KEY AUTO_INCREMENT, wallet_id INT NOT NULL, amount DECIMAL(10, 2) NOT NULL, transaction_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (wallet_id) REFERENCES user_wallet(wallet_id) ); -- Order table to store order information CREATE TABLE `order` ( order_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, plan_id INT NOT NULL, order_time DATETIME NOT NULL, order_status INT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(user_id), FOREIGN KEY (plan_id) REFERENCES gym_plan(plan_id) ); -- Order Plan Detail table to store order plan details CREATE TABLE order_plan_detail ( order_detail_id INT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, plan_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10, 2) NOT NULL, FOREIGN KEY (order_id) REFERENCES `order`(order_id), FOREIGN KEY (plan_id) REFERENCES gym_plan(plan_id) ); -- User Inventory table to store user inventory information CREATE TABLE user_inventory ( inventory_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, plan_id INT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(user_id), FOREIGN KEY (plan_id) REFERENCES gym_plan(plan_id) ); -- History table to store user history information CREATE TABLE history ( history_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, action_type VARCHAR(20) CHARACTER SET utf8mb4 NOT NULL, action_details TEXT CHARACTER SET utf8mb4, action_time DATETIME NOT NULL, FOREIGN KEY (user_id) REFERENCES user(user_id) ); -- User Feedback table to store user feedback information CREATE TABLE user_feedback ( feedback_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, department_id INT NOT NULL, rating INT NOT NULL, comments TEXT CHARACTER SET utf8mb4, response TEXT CHARACTER SET utf8mb4, feedback_time DATETIME NOT NULL, feedback_status INT NOT NULL, FOREIGN KEY (user_id) REFERENCES user(user_id), FOREIGN KEY (department_id) REFERENCES gym_department(gym_department_id) );
Editor is loading...