연속적인 흐름을 저장할때.. 0 3 830

by 돌풍1234 [MySQL] 테이블 [2021.03.13 05:31:17]


안녕하세요.

DB에 연속적인 정보(흐름)를 저장하려고 하는데, 딱히 아이디어가 떠오르지 않아서 

야심한 새벽에..질문을 올리게 되었습니다...

 

어떤 정보들이냐하면요..

어떤 일련의 흐름이에요..어떤 사람이 구매한 순서대로 사과->딸기->바나나 했을때요..

테이블 구조를 짜지를 못하겠어요..

index(pri key,auto increse), 주문자, 상품  이있을때

 

1  김개똥 사과

34  김개똥 딸기

96  김개똥 바나나

 

식으로 될수있는데, 저기에 따로 index 테이블을 넣어서

1  김개똥    사과       0

34  김개똥   딸기       1 

96  김개똥   바나나     2

 

이런식으로도 생각해봤는데..문제는 중간에 딸기를 삭제하거나 변경?(오렌지) 하면 

사과 -> 오렌지 -> 바나나 이거보다..기록의 과정이 있어야되니까..

테이블을 하나더 만들어서 visible ? 같은부류..

1  김개똥 사과       0      true

34  김개똥 딸기      1      false

108 김개똥 오렌지    1      true

96  김개똥 바나나    2      true

 

이렇게요.. 흠....그래서 true인거만 보여주고 나중에 전체 흐름을 보여줘~ 하면 다 보여주면 될거같기는 한데..

저것또한 변경 순서대로 보여줘야 될거같거든요..그럼 변경할때마다 또 index를 넣어줘야하는데..흠...

고수형님들께서는 저럴때 어떤식으로 하시는지 궁금합니다..

 

감사합니다...

 

 

 

 

 

 

 

 

by 뉴비디비 [2021.03.13 13:30:39]

어떤 데이터을 확인하고 관리하기 위해서 시간 칼럼을 많이 활용합니다. 
흐름 순서를 시간으로 관리하면 굳이 순서값을 따로 설정할 필요도 없고, 언제 데이터가 처리되었는지도 알 수 있습니다. 

그리고 데이터가 많아져서 데이터 관리나 성능의 이슈가 발생하게 되면 한 테이블로 모든 자료를 유지하기 어렵게 됩니다.
운영 방법은 꼭 정해진건 아니라서 상황에 따라, 운영 정책에 따라 다를텐데, 
visible칼럼으로 구분할 수도 있겠지만, 바로 보여질 필요가 없는 데이터는 별도 관리용/내역용 테이블로 분리해서 필요할만 때 연결해서 보여줄 수도 있습니다.


by 돌풍1234 [2021.03.13 23:38:54]

ㅎ ㅏ..시간..ㅎㅎ;;;

변경을 하던..삽입을 하던..머를 하던....

시간을 넣으면....일괄적으로 할 수 있네요.....ㅜ.ㅜ;; 

감사합니다.


by 마농 [2021.03.15 08:10:44]

번호는 변경될때마다 새로 부여하기 보다는
필요시 만들어 내서 조회하면 됩니다.
ROW_NUMBER 등의 방법 이용.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입