안녕하세요. 현재 이력 테이블을 설계하고 있는데, 설계하다보니 궁금한 사항이 있어서 글 올립니다.
주문 테이블, 주문 이력 테이블과 가격 테이블을 만들고 있습니다.
주문 테이블은 가격 테이블을 참조해서 주문을 저장하고, 주문 이력 테이블은 해당 주문이 update 되거나 delete 될 때만 insert해서 이력을 관리하게 하려고 합니다.
가격 테이블의 경우에도 가격 이력 테이블을 만들어서 관리를 해보려고 했는데, 생각해보니까 다음과 같은 오류가 있을 것 같았습니다.
1. 가격 이력 테이블을 만들어서 가격이 update 되거나 delete 될 때 insert를 한다.
2. 가격 테이블의 가격은 update가 된다.
3. 해당 가격을 참고하고 있는 주문 테이블이 있다면, 해당 주문 테이블의 가격이 의도치않게 변경되버린다.
주문 테이블이 가격 테이블을 참조해야지 가격 이력 테이블을 참조하면 안될 것 같아서 가격 이력 테이블을 만드는 방식을 택하지 않고, status라는 상태값을 넣어서 관리해보기로 했습니다.
그래서 이 경우에는 가격 테이블의 가격이 update 되면 기존의 가격 데이터는 남겨놓고 새로운 가격을 가격 테이블에 insert해서 관리해서 이력을 관리할 수 있을 것 같았습니다.
짜다보니까 주문과 가격의 이력 성격이 비슷하면서도 아닌것 같아서, 이러한 경우에는 서로가 어떤 이력 속성을 띄는지가 궁금합니다. 이 속성을 알아야 제대로 된 설계를 할 수가 있을것 같습니다.