2010-07-15 5 views
0

어쩌면 이것은 어리석은 질문 일지 모르지만 나는 SQL을 빨아 들인다.어떤 필드 유형입니까?

그러나 1에서 5까지의 숫자 만 가질 수있는 필드에는 어떤 필드 유형을 사용해야합니까? 5는 최대이며 1은 최소입니다. 그것은 내가 잘못된 유형의 performace에게

편집을 해칠 수 가지고 들어 int(11) not unsigned

현재의 : 데이터베이스 InnoDB는 것입니다. RDBMS는 MySQL입니다

답변

2

RDBMS에 따라 작은 값을 저장할 수있는 정수를 사용하십시오.

크기가 1 바이트이며, 현재 버전의

MySQL apparently doesn't have check constraints implemented 127 값 255 또는 -128를 보유하고 MySQL has a tinyint datatype, 그래서 당신은 자신을 당신의 1-5 범위 요구 사항을 적용해야 하나 다른 코드에서. 이 비즈니스 논리를 시행하기위한 방아쇠를 작성하는 것에 대한 몇 가지 제안이 있습니다.

데이터 유형 상처 조정 성능에 문제가 없지만이 경우에는 적용되지 않을 수 있습니다. 이것을 마이크로 최적화라고 생각해도 여전히 고려해 볼 가치가 있습니다.

+3

거룩한 암소! MySQL은 체크 제약을 존중하지 않습니다! 이는 데이터 무결성을 구현하는 핵심 도구입니다. 그건 사실 범죄입니다. – Thomas

+0

고마워! 나는 PHP로 확인할 수있다. – Damjan

0

어떤 데이터베이스 플랫폼입니까?

나는 일반적으로 데이터 품질/무결성을 측정하기 위해 최소값을 선택하고 검사 제약 조건을 추가합니다.

SQL Server의 경우 tinyint (0-255)입니다.

관련 문제