2010-01-12 3 views
1

나는 저장 /로드 작업을하고 있으며 테이블을 카테고리로 나눠서 많은 테이블을로드/저장해야합니다. 문자, 모양, character_preferences, character_session 등 (왼쪽 조인 절을 사용하여로드)MySQL - 다중 테이블 대 단일 테이블

방금 ​​모든 열을 여러 테이블로 분할하는 대신 하나의 테이블에 넣으면 더 좋을까요?

나는 문제가 발생할 수있는 테이블 안에 너무 많은 열이있을 것이라고 생각하여 일반적으로이를 여러 스레드로 분할했습니다.

단일 테이블/다중 테이블을 사용해야하는지 여부에 대한 의견이 있으십니까?

답변

6

모두 디자인에 따라 다릅니다. 캐릭터는 외모가 여러 개입니까? 그렇다면 character_appearance는 자체 테이블에 속할 것입니다. 그러나 문자가 하나의 외모 만 가지고 있다면 문자표에 속하게됩니다. 각 열이 실제로 기본 키에 직접 의존하는 한 테이블에있는 열 수는 문제가되지 않습니다.

캐릭터가 여러 가지 기본 설정을 가질 수 있다고 생각합니다.이 경우 스피어테 환경 설정 테이블을 만들어야합니다. 세션은 어떻습니까? 한 문자 당 하나 또는 여러 개? 질문은 세션이 실제로 무엇에 의존 하는가? 그 성격의 id 나 다른 것?

한 문자가 다른 시간에 여러 세션을 가질 수 있습니다. 그렇다면 세션은 캐릭터의 기본 키뿐만 아니라 캐릭터의 기본 키에 의존합니다. 어떤 경우에는 문자 테이블에 속하지 않고 테이블 자체에 속합니다.

+0

세션 테이블에는 현재/마지막 세션 키, 마지막 IP, 마지막 로그인 날짜 및 온라인 시간과 같은 현재 값, 현재 연결 시간 (로그인 이후 얼마나 오래 온라인 상태 였는지)과 같은 차이 값이 저장됩니다. 모양 테이블에는 머리, 몸통, 다리, 발, 손, 팔, 머리카락, 수염, 색 등과 같은 여러 열도 있습니다. – TheAJ

+0

여러 열은 문제가되지 않습니다. 머리, 몸통, 다리, 발, 손, 팔, 머리카락, 수염, 색 등은 모두 캐릭터에 직접적으로 의존합니까? 그렇다면 그들은 캐릭터 테이블에 속한다. 그렇지 않다면 테이블에 속한다. 세션 등으로 같은 일 –

2

여러 테이블 : 모델링 및 유지 관리 관점에서 도메인 클래스 당 테이블을 갖는 것이 일반적으로 더 깔끔합니다.