-
DB Table RelationCS (Computer Science) 2024. 1. 23. 01:52
1:1 (일대일) 관계
- 예시 : 사용자와 프로필
CREATE TABLE USERS( user_id INT PRIMARY KEY, username VARCHAR(255) );
CREATE TABLE Profiles(
profile_id INT PRIMARY KEY,
user_id INT UIQUE,
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);각 사용자(user)는 하나의 프로필(profile)을 지닌다. 프로필은 특정 사용자에게 속한다. ## 1:n (일대다) 관계 - 예시 : 게시글과 댓글
CREATE TABLE Posts(
post_id INT PRIMARY KEY,
title VARCHAR(255),
content TEXT
);CREATE TABLE Conmments(
comment_id INT PRIMARY KEY,
post_id INT,
content TEXT,
FOREIGN KEY (post_id) REFERENCES Posts(post_id)
);한 게시글은 여러 댓글을 지낼 수 있지만, 한 댓글은 하나의 게시물을 지닐 수 있다. ## n:1 (다대일) 관계 - 예시 : 주문과 고객
CREATE TABLE Orders(
order_id INT PRIMARY KEY,
customer_id INT,
order_details VARCHAR(255),
FOREIGN KEY(customer_id) REFERENCES Customers(customer_id)
);CREATE TABLE Customers(
customer_id INT PRIMARY KEY,
customer_name VARCHAR(255)
);- 여러 주문은 하나의 고객을 지니고, 하나의 고객은 여러 주문을 할 수 있다. ## n:n (다대다) 관계 - 예시 : 요리 레시피와 요리에 사용되는 재료
CREATE TABLE Recipes (
recipe_id INT PRIMARY KEY,
recipe_name VARCHAR(255)
);CREATE TABLE Ingredients (
ingredient_id INT PRIMARY KEY,
ingredient_name VARCHAR(255)
);CREATE TABLE RecipeIngredients (
recipe_id INT,
ingredient_id INT,
PRIMARY KEY (recipe_id, ingredient_id),
FOREIGN KEY (recipe_id) REFERENCES Recipes(recipe_id),
FOREIGN KEY (ingredient_id) REFERENCES Ingredients(ingredient_id)
);- 각 요리 레시피는 여러 재료를 사용하며, 또한 각 요리에 사용되는 재료들은 여러 레시피에 사용된다.
'CS (Computer Science)' 카테고리의 다른 글
HTTP Request Methods (0) 2025.01.10 Cookie & Session (0) 2025.01.10 브라우저 동작 방법 (0) 2025.01.10 Redis란? (0) 2024.07.05 Naming Convention [TypeScript] (0) 2024.01.12 - 예시 : 사용자와 프로필