데이터베이스 설계 질문입니다
본문
안녕하세요
영상 촬영을 통한 운동 자세 교정 서비스를 구현중에 있습니다
자세 교정 외에도 기록을 통해 소모 칼로리나 운동 횟수를 보여주는 서비스도 만들 계획인데요
1. 운동 테이블 외에도 교정 테이블을 따로 만들어야 할까요?
그리고 영상을 저장해서 다시 보여주려고 하는데 거기에 파일명 속성을 추가하는 게 맞는 것인지요
간략하게 만들었는데 올바른 길로 가고 있는지 의심스럽습니다...
2. 그리고 관리자가 회원들의 운동 상태를 체크하게 만들고 싶은데 사진과 같이 설계해도 될까요
저렇게 설계해도 한 회원의 여러 운동 현황을 파악할 수 있을지 궁금합니다
초보자라 질문의 갯수만 많지 결과물이
형편없는 점 거듭 사과드립니다
그리고 조언 부탁드리겠습니다
답변 3
설계에 대해서 질문을 구할때에는 대략적인 업무도 소개시켜주시면 좀 더 명확한 답변을 얻을수 있을거에요^^;
일단, 전 운동 관련된 솔루션을 개발을 해본적은 없습니다. 무식한 답변 양해 부탁드립니다. ^^;
1. 운동 기록 테이블 : 회원들에 대한 운동기록 테이블인지요?
2. 운동 테이블 : 관리자가 운동에 대한 등록 설정한 테이블인지요? 질문과 별개로 파일명 속성 컬럼은 테이블로 따로 빼시는게 좋을듯 합니다.
3. 운동기록 테이블에서 운동횟수, 운동테이블에서 운동횟수?
=> 운동기록 테이블에서 운동횟수는 회원들이 얼마나 횟수에 도달했냐 이런것을 알아보기 위한 기록으로 인지해도 되는지요?
그렇다고 한다면 운동루틴이나 운동과정의 개념은 있는지요?
루틴의 개념이 있으면 A루틴에서 푸쉬업이 8번째 순서에 있고, B루틴의 푸쉬업에서는 1번째 순서에 있는데 운동횟수의 차이는 있을거라 봅니다. 정확한 통계를 보기위해서는 그러한 부분이 필요해 보입니다.
한마디로, 운동기록테이블에 대한 고민을 더 해보셔야 한다는 겁니다.^^;
4. 영상을 저장을 한다는 것이 회원들의 운동한것을 다시 저장하여 보여준다는 의미인건지요?
=> 회원에 대한 내용이라면 운동기록 테이블에 속성하나 만들어서 해도될것 같지만, 제가 우선 업무에 대해 몰라서 답변의 한계가 있는점 양해 부탁드립니다.
5. 회원관리 테이블 :
=> 운동이름, 운동횟수, 소모칼로리, 운동일시 등의 속성은 빼셔야 할 것 같습니다. 운동기록에서 확인이 가능하기 때문입니다.
6. 회원 테이블:
나이, 주민번호 속성도 빼주셔야 합니다. 나이는 생년월일로 대처하시고 주민번호는 개인정보로 저장을 안하시는것이 좋을듯 합니다.
그리고, 소속지점은 회원 테이블 속성으로 두시지 마시고 테이블을 별도로 만드세요.
회원이 압구정 지점에 있다가 대치 지점으로 이전할 수 있는데 컬럼 하나로 두시면 과거에 어느 소속으로 되어있는지
모르기 때문입니다. 소속지점은 별도 테이블 관리해서 기록이 누적될수 있도록 설계해 주세요.
서비스 만료 예정일도 회원 테이블 속성으로 두지 마시고 누적되어 기록될수 있도록 설계를 제고해보세요.
7. 관리자 테이블
테이블 삭제해주시고 회원 테이블과 같이 관리해 주세요.
권한 테이블을 만들어서 관리해 주는것을 추천해 드립니다.
우선 다른분들 답변이 없어서 제가 나름 성의것 답변을 드릴려고 노력했습니다^^;
제가 질문자님 만큼 업무를 많이 아는것이 없어서 설계에 대해서 이러쿵 저렁쿵 이야기 할 수는 없습니다.
아시겠지만, 설계에 있어서 가장 중요한것은 업무분석이 제대로 되어야 합니다. 그런 다음 설계를 재점검이 필요해 보입니다.
결론
우선 테이블 재정비하고 다시 설계해서 봐야할듯 합니다~^^;
운동 루틴의 개념이라던가 아니면 다른 업무가 더 있는지 체크후 재설계 바랍니다.
데이터베이스 를 만드시는데 있어서 는 얘기할게 많아서 간략하게 정리해드리자면
우선 데이터베이스는 논리적 설계 를 먼저하신후 물리적 설계를 하시는게 좋습니다.
어떤 얘기냐면
내가 하려는 서비스 는 회원을 대상으로 한 운동자세 교정 서비스 이며 자세교정 외에도 소모칼로리 나 운동횟수도 보여줘야 한다
라는게 최소한 의 요약이라면 위 내용중에서 테이블 단위로 쪼갤수있는것을 찾아낸후
데이터베이스 정규화 에 맞춰서 구성하시면 좋습니다.
===============================
제가 구성을 한다면 간략하게는
회원 테이블
영상테이블
운동테이블
운동기록 테이블
은 기본적으로 들어가야 합니다
========================
질문하신것에 대한 답변을 간략히 드리면
1. 운동 테이블 외에도 교정 테이블을 따로 만들어야 할까요?
=> 운동테이블은 운동의 종류를 저장하는 테이블 입니다
교정 테이블에는 교정에 대한 어떤 내용이 들어가야 하며 따라서 교정에 대한 내용을 보여주기 위해서는 운동 테이블과 별개로 따로 생성되어야 할것으로 보입니다
그리고 영상을 저장해서 다시 보여주려고 하는데 거기에 파일명 속성을 추가하는 게 맞는 것인지요
=> 영상테이블은 별도로 분리함이 좋아보입니다 이유는 운동별 영상이 1개라면 위구조가 맞지만 하나의 운동에 여러개의 영상 이 존재할수있으므로 영상테이블을 추가로 만들고 1:n 관계로 구성하셔야 합니다.
테이블 구성에 파일명 , 용량 등은 저장되면 좋고 파일속성(확장자) 등은 저장하셔도 되고 안하셔도 됩니다
2. 그리고 관리자가 회원들의 운동 상태를 체크하게 만들고 싶은데 사진과 같이 설계해도 될까요
=> 회원들의 운동상태는 한명의 회원이 여러개의 운동을 할수있고 하나의 운동이라 하더라도 여러번 반복할수있고 그때마다 저장되는 데이터 는 다르기 때문에
회원 , 운동 , 운동기록은 작성하신대로 하는게 좋아보입니다.
데이터베이스 작성에는 정답은 없는거같고 다만 이미 기존에 사용되고 있는 규칙 및 규약 이 있습니다.
따라서 데이터 베이스 작성시
논리설계 -> 물리설계 의 절차로 진행하시고
제1,2,3 정규화 까지만 신경쓴다는 생각으로 진행하시면 될듯 합니다
관리자"라는 것이 각 회원마다 1:1식으로 코칭해 주는 사람을 뜻하는 것인가요?
그렇다면
코치 -= 코칭 =- 회원
코칭 밑에 운동 기록이 있으면 어떨까요?