ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB Table Relation
    CS (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
Designed by Tistory.