DRY : Don't Repeat Yourself
반복적인 코드를 작성하지 말고 효율화된 코드를 작성하라
자기자신을 반복하게 하지 말자
COC : Convention over Configuration
설정보다 규약이 중요하다
상품명이 겹치는 경우가 있을 수 있음
이 둘을 어떻게 구분하면 좋을까? => 고유 id값 넣어주기
엑셀로 하면 번거로움. ERD(Entity Relationship Diagram) 사용함. ERD
란? 개체 속성과 개체 간 관계를 도표로 표현한 것.
HOW 부모의 레코드가 삭제 됐을 때 자식 레코드는? (루비온레일즈 용어)
1. Destroy
: 같이 삭제를 시켜버리는 것
=> 강한 관계 : ERD에서 실선으로 표현
2. Nullify
: 유저의 외래키만 빈값으로 바꾸는 것
=> 약한 관계 : ERD에서 점선으로 표현
💎 다짜고짜 내 마음대로 설계하는 것이 아니라, 이 쇼핑몰을 운영하는 사람의 니즈를 파악하고, 그에 맞게 설계하는 것이 중요함
특정 상품의 옵션이 삭제되었을 때 그 상품의 옵션을 담고 있는 LineItem은 삭제 되어야 할까?
그런 경우도 있고 남아있어야 하는 경우도 있다
LineItem이 단순히 장바구니에 담겨있는 경우, 삭제되어야 맞음
결제가 완료된 상태의 Order라면 삭제되면 안되는 정보일 수도 있음
루비온레일즈에서 비즈니스 로직 설계를 잘해줘야 함.