게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금] 디비 설계 질문드립니다. (멤버들 간의 대결 기록)
게시물ID : programmer_22301짧은주소 복사하기
작성자 : 김치즈
추천 : 0
조회수 : 615회
댓글수 : 5개
등록시간 : 2018/04/15 04:20:46
안녕하세요. 디비 설계 중 막히는 부분이 있어 질문드립니다. 


우선 구현하고자 하는 시스템은 아래와 같습니다. 

ScreenClip [3].png






이제 데이터를 수집해서 DB에 저장하는 작업을 하는 중인데

설계를 어떻게 해야 할지 잘 감이 안잡힙니다. 

두 가지 방법을 생각했는데요. 둘 다 이건 아닌데 싶습니다. 

우선 선수 코드가 아래와 같이 있구요. 


ScreenClip [4].png



경기 번호를 매기고 모든 경기를 기록 한 후 필요할 때 연산 하려고 하다가 

데이터 연산에 따른 성능 저하가 클 것 같아서 승수만 기록하려고 합니다. 



우선 첫 번째로 생각했던 방법입니다. 

ScreenClip [5].png


101과 102의 대결에서 101이 승리했다면 위의 1열에 승수를 +1 합니다.

같은 매치업에서 102가 승리했다면 위의 표에서 4열에 승수를 +1 합니다.

101과 102의 승률을 얻어 올 때는 (101의 승수 + 102의 승수)를 총 경기수로 잡고 계산합니다. 


제가 문제라고 생각한 부분입니다.
  • 선수가 많아 각 매치업마다 두 개의 row를 만들어야 해서 row양이 과도하게 많아짐
  • 각 매치업의 승수를 구할 때마다 두 개의 row를 검색하고 연산해야함. 





두 번째로 생각한 방법입니다. 

ScreenClip [6].png

101과 102의 대결이 입력되었다면 두 선수의 코드를 비교합니다. 

낮은 숫자의 코드(101)를 선수로, 높은 숫자의 코드(102)를 상대선수로 잡습니다. 

총 경기 수에 +1을 합니다.

101의 승리시에만 선수 승수에 +1을 합니다.

101과 102의 승률을 얻어 올 때는 총 경기 수와 선수 승수를 이용해 계산합니다.


제가 느끼는 문제점




디비를 잘 모르는 초보자인데 제가 봐도 조금 이상한거 같아 질문 드립니다. 

이러한 목적을 가진 시스템이 드물지는 않을 거 같은데 어떻게 설계를 해야할 지 감이 잡히지 않습니다.. 

어떤 키워드로 찾아봐야 할지도 모르겠네요. 

몇 일간 고민하고 찾아보고 하는데 제 능력으로는 이게 최선이라 도움 요청드립니다.  

확실하지 않더라도 생각 말씀해주시면 해당 키워드로 찾아보겠습니다. 

고수님들의 도움이 필요합니다 ㅜㅜ


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호