-- 사용자 정보 테이블
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password_hash CHAR(64) NOT NULL
);
-- 주문 정보 테이블
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
order_date TIMESTAMP NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL,
shipping_address TEXT NOT NULL,
payment_method VARCHAR(50) NOT NULL
);
-- 결제 정보 테이블
CREATE TABLE payment_info (
payment_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
card_number VARCHAR(16) NOT NULL,
card_expiration DATE NOT NULL,
card_cvv VARCHAR(3) NOT NULL
);
-- 장바구니 정보 테이블
CREATE TABLE cart (
cart_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id)
);
-- 상품 정보 테이블 (상품 정보는 단순화되어 포함되지 않음)
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
-- 리뷰 및 평가 테이블
CREATE TABLE reviews (
review_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
product_id INT REFERENCES products(product_id),
rating INT NOT NULL,
review_text TEXT,
review_date TIMESTAMP NOT NULL
);
-- 사용자 권한 테이블
CREATE TABLE user_permissions (
permission_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
permission VARCHAR(50) NOT NULL
);