MySQL
쇼핑몰과 카테고리 1단계
H_u
2024. 6. 24. 10:18
728x90
반응형
SMALL
1. 설계
tb_categories
Field Name | Data Type | Descripition | value |
category_id | int | 카테고리 고유 ID | 1, 2, 3, 4 |
category_name | varchar(100) | 카테고리 이름 | "상의", "하의", "외투" |
tb_products
Field Name | Data Type | Descripition | value |
product_id | int | 상품 고유 ID | 1, 2, 3, 4 |
product_name | varchar(255) | 상품 이름 | "상의", "하의", "외투" |
category_id | int | fk | |
price | dicimal(10, 2) | 상품 가격 | |
size | enum | 상품 사이즈 | "S", "M", "L", "XL" |
color | varchar(50) | 상품 컬러 | "흰색", "검정색", "청색" ... |
테이블 관계
- tb_categories 와 tb_products 는 일대다 관계( 1 : N )
각 카테고리는 여러 상품을 포함할 수 있으며, 각 상품은 하나의 카테고리에만 속한다.
2. 코드
CREATE TABLE tb_categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
category_name VARCHAR(100) NOT NULL
);
INSERT INTO tb_categories(category_name) VALUES('상의');
INSERT INTO tb_categories(category_name) VALUES('하의');
INSERT INTO tb_categories(category_name) VALUES('외투');
CREATE TABLE tb_products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255),
category_id INT,
price DECIMAL(10 , 2 ),
size ENUM('S', 'M', 'L', 'XL'),
color VARCHAR(50),
FOREIGN KEY (category_id)
REFERENCES tb_categories (category_id)
);
SELECT * FROM tb_categories;
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('티셔츠', 1, 19900, 'M', '흰색');
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('청바지', 2, 49900, 'L', '청색');
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('자켓', 3, 99900, 'L', '검정색');
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('셔츠', 1, 29900, 'S', '보라색');
SELECT * FROM tb_products;
-- 특정 카테고리에 속하는 모든 상품을 조회하는 쿼리
SELECT p.product_name, p.price, p.size, p.color
FROM tb_products p
JOIN tb_categories c ON p.category_id = c.category_id
WHERE c.category_name = '상의';
728x90
반응형
SMALL