답변:
이러한 데이터 유형은 동의어입니다.
여기서는 다른 접근 방식을 취하고 동료 개발자가 컴파일러 / 데이터베이스와 마찬가지로 코드를 이해하는 것이 중요하다고 제안합니다. 부울을 사용하는 것은 tinyint를 사용하는 것과 동일한 일을 할 수 있지만 의도를 의미 론적으로 전달하는 이점이 있으며 그만한 가치가 있습니다.
tinyint를 사용하는 경우 표시되어야하는 유일한 값이 0과 1이라는 것이 분명하지 않습니다. 부울은 항상 true 또는 false입니다.
boolean
MySQL에서 고유 한 데이터 유형이 아닙니다. 그것은 단지 tinyint
. MySQL 매뉴얼의이 페이지를 참조하십시오 .
개인적으로 저는 tinyint를 기본 설정으로 사용하는 것이 좋습니다. 부울은 이름에서 생각하는 작업을 수행하지 않으므로 잠재적으로 잘못된 코드를 만들 수 있기 때문입니다. 그러나 실질적인 수준에서는 실제로 중요하지 않습니다. 둘 다 동일한 작업을 수행하므로 둘 중 하나를 사용하여 어떤 것도 얻거나 잃지 않습니다.
사용 열거 의 쉽고 빠른
bit (1)은 부울 값을 저장하는 데 1 비트 만 필요하고 tinyint (1)에는 8 비트가 필요하므로 enum 또는 tinyint (1)을 권장하지 않습니다.
심판
BIT(M) - approximately (M+7)/8 bytes
참조 : dev.mysql.com/doc/refman/8.0/en/storage-requirements.html
Dapper 를 사용하여 MySQL 에 연결할 때의 경험 은 그것이 중요 하다는 것 입니다. 다음 스크립트를 사용하여 nullable이 아닌 bit (1)을 nullable tinyint (1)로 변경했습니다.
ALTER TABLE TableName MODIFY Setting BOOLEAN null;
그런 다음 Dapper는 예외를 던지기 시작했습니다. 대본 전후의 차이점을 살펴 보았습니다. 그리고 bit (1)이 tinyint (1)로 변경된 것을 확인했습니다.
그런 다음 실행했습니다.
ALTER TABLE TableName CHANGE COLUMN Setting Setting BIT(1) NULL DEFAULT NULL;
문제가 해결되었습니다.
boolean
등을tinyint(1)
. 당신이 사용할 수 있도록boolean
,true
그리고false
같은과 MySQL의 취급을tinyint(1)
,1
하고0
.