본문 바로가기

Java Spring Boot

[ erd_cloud 상품_위치 관계 테이블 작성 ]

 

* 처음 작성한 부분부터 사진으로 남기는 중 -> 계속 피드백을 받으며, 더 개선이 필요한 부분들 수정 진행.

 

피드백 정리
1. 위치 테이블을 삭제하고, “상품 위치” 테이블에 “구역”+”선반”+”층” 테이블을 fk키로 놓기

-> 만약 z라는 구역이 추가될 경우, 일일이 z-1-1,z-1-2 이런식으로 만들어줘야 되기 때문에
    
  유저한테 옵션을 주고, 유저가 만들도록 방향을 잡기

  (+데이터 정합성 고려 / 있는 데이터로만 참조하기 때문에, 실수로 누락되는 경우 없도록 할 수 있음)
2. 상태값 varchar()로 설정 이유
-> 상태값이 유효/유효하지 않음이 올 수도 있고,
판매 전 / 판매 중 / 특이건(유통기간 문제) 등이 
   있을 수 있기에 varchar()로 놓음
3. 구역, 랙, 층 같은 경우는 쓰다가 안 쓰게 될 경우(또는 구역을 쓰다가 지울 수도 있으니),
   deleted_at 정도는 넣어주는 게 좋음
4. 구역,선반,층에 필드에 id값만 들어가있고, name이 없음 
-> name 필드 추가.
5. 등록일 칼럼에 어떤 테이블은 register_at, 다른 테이블은 created_at으로 이름 통일 필요
-> created_at으로 통일 
6. 필드명 카멜 케이스 보다는 _로 사용하여 지정 

   expiredDate -> expired_date
7. String 타입 -> varchar(숫자)로 변경하기
8. _at 칼럼들은(예_created_at) DATE 타입 보다는 DATETIME타입이 좋음

-> 정확한 시간까지 파악되어야 추적하기 좋음
9. 상품 테이블에서 카테고리 id를 이미 가지고 있어서, 카테고리 컬럼이 따로 있을 필요 없음
-> 카테고리 컬럼 삭제.

!!데이터베이스를 설계하는 형태로 사고흐름을 가져가도록 해보기
1.사용자가 카테고리 테이블과 바로 연관이 안됐던 이유는, 사용자가 상품을 등록해야 카테고리가 생기기 때문.
  (사용자가 상품과 관계를 맺기 전에, 사용자-카테고리 이렇게 맺는게 불가능 함)
2.사용자와 상품의 관계(1:N)가 확립이 된 이후에는, 사용자가 카테고리 테이블과 관계를 맺을 수 있게 됨 -> 1:N

 

 

1. 처음 ERD 작성 화면

 

 

2. 수정 후 ERD 화면