[Ruby On Rails] 쇼핑몰 간단 ERD 모델링

sunaaa·2021년 4월 12일
3

Ruby On Rails

목록 보기
3/20
post-custom-banner

루비 언어 철학

DRY : Don't Repeat Yourself
반복적인 코드를 작성하지 말고 효율화된 코드를 작성하라
자기자신을 반복하게 하지 말자

COC : Convention over Configuration
설정보다 규약이 중요하다

쇼핑몰 데이터 모델링

상품(Item)

  • ID
  • 상품명
  • 상품가격
  • 재고
  • 판매자(User의 ID 고유값)
    (이런 컨셉은 객체지향을 공부하면 좀 더 쉽게 이해됨)

상품명이 겹치는 경우가 있을 수 있음
이 둘을 어떻게 구분하면 좋을까? => 고유 id값 넣어주기

사용자(User)

  • ID
  • 사용자명
  • 전화번호

주문정보(Order)

  • 사용자(user_id)
  • 상품(item_id)
  • 수량
  • 총 금액

엑셀로 하면 번거로움. ERD(Entity Relationship Diagram) 사용함. ERD란? 개체 속성과 개체 간 관계를 도표로 표현한 것.

의존성 (Dependency)

HOW 부모의 레코드가 삭제 됐을 때 자식 레코드는? (루비온레일즈 용어)
1. Destroy : 같이 삭제를 시켜버리는 것
=> 강한 관계 : ERD에서 실선으로 표현
2. Nullify : 유저의 외래키만 빈값으로 바꾸는 것
=> 약한 관계 : ERD에서 점선으로 표현

💎 다짜고짜 내 마음대로 설계하는 것이 아니라, 이 쇼핑몰을 운영하는 사람의 니즈를 파악하고, 그에 맞게 설계하는 것이 중요함

특정 상품의 옵션이 삭제되었을 때 그 상품의 옵션을 담고 있는 LineItem은 삭제 되어야 할까?
그런 경우도 있고 남아있어야 하는 경우도 있다
LineItem이 단순히 장바구니에 담겨있는 경우, 삭제되어야 맞음
결제가 완료된 상태의 Order라면 삭제되면 안되는 정보일 수도 있음
루비온레일즈에서 비즈니스 로직 설계를 잘해줘야 함.

쇼핑몰 ERD 1:N 다이아그램

profile
Be Playful Front-end Developer
post-custom-banner

0개의 댓글