product 테이블과 additional_option의 다대다 관계를 매핑하는 테이블인 product_option 테이블의 기본키를 surrogate key에서 natural key로 변경
마찬가지로 매장별 제품별 재고를 나타내는 office_stock 테이블의 기본키를 natural key 로 변경
proudct_option 테이블에서 기존에 product_id를 외래키로 설정 안해줬던 부분을 설정해주고 product 테이블에 잘못 설정되어있던 외래키 삭제
BIGINT를 제외하고 양의 정수만 존재하는 필드에 대해 UNSIGNED 적용과 그에 따른 자바 클래스 필드 변경
(UNSINGED BIGINT 는 primitive type이 없고 성능이 좋지 않은 BigInteger를 써야 하고 BIGINT의 양수 범위로도 충분하다는 판단)
그 외 정수형 범위 적당하게 변경
additional_option 테이블과 product 테이블의 name 에 UNIQUE 제약조건 추가
product 테이블 is_active 필드를 VARCHAR(1) 에서 BOOLEAN(MySQL 내부적으로는 TINYINT(1)과 동일) 으로 변경
옵션이 존재 하지 않더라도 예외를 던지지 않고 빈 리스트 반환
UNIQUE 조건을 걸어준 부분에 대해 검사하지 않고 저장 시도 후 중복시 스프링이 던지는 DuplicateKeyException 을 다시 전환해서 반환