복붙노트

[SQL] MySQL은 부울 값 부울 VS TINYINT (1)

SQL

MySQL은 부울 값 부울 VS TINYINT (1)

어떤 컬럼 유형은 부울 값에 대한 MySQL 데이터베이스에 사용하는 것이 가장 좋습니다? 나는 부울 사용하지만 내 동료가 TINYINT (1)를 사용합니다.

해결법

  1. ==============================

    1.이러한 데이터 유형은 동의어입니다.

    이러한 데이터 유형은 동의어입니다.

  2. ==============================

    2.나는 여기에 다른 접근을하고 컴파일러 / 데이터베이스와 같이 동료 개발자가 코드를 이해하는 것이 똑같이 중요하다고 제안하기 위하여려고하고있다. 부울을 사용하여, 그러나 그것은 의미 당신의 의도가 무엇인지 전달하는 장점이있다, TINYINT를 사용하는 것과 같은 일을하고, 그 가치가 뭔가 할 수 있습니다.

    나는 여기에 다른 접근을하고 컴파일러 / 데이터베이스와 같이 동료 개발자가 코드를 이해하는 것이 똑같이 중요하다고 제안하기 위하여려고하고있다. 부울을 사용하여, 그러나 그것은 의미 당신의 의도가 무엇인지 전달하는 장점이있다, TINYINT를 사용하는 것과 같은 일을하고, 그 가치가 뭔가 할 수 있습니다.

    당신이 TINYINT를 사용하는 경우, 당신이 볼 수있는 유일한 값은 0과 1. 부울는 항상 참 또는 거짓임을 분명 아니다.

  3. ==============================

    3.부울 MySQL은 별개의 데이터 유형 아니다; 그것은 TINYINT 단지의 동의어입니다. MySQL의 설명서에이 페이지를 참조하십시오.

    부울 MySQL은 별개의 데이터 유형 아니다; 그것은 TINYINT 단지의 동의어입니다. MySQL의 설명서에이 페이지를 참조하십시오.

    개인적으로 나는 그것이 잠재적으로 코드를 오해의 소지가있게 때문에 부울, 그것은 이름에서 무엇을 생각하지 않기 때문에, 선호로 사용 TINYINT을 건의 할 것입니다. 그러나 실제적인 수준에서, 정말 중요하지 않습니다 - 그들은 둘 다 그래서 당신이 얻고 또는 중 하나를 사용하여 아무것도 잃지하지 않는, 같은 일을.

  4. ==============================

    4.열거 사용의 쉽고 빠른

    열거 사용의 쉽고 빠른

    난 TINYINT (1) 8 개 비트를 필요로하는 동안 부울 값을 저장하기 위해 단지 1 비트 비트 (1)와 같은 요구를 ENUM 또는 TINYINT (1)을 추천 할 수 없습니다.

    심판

    MySQL은 부울 값 ENUM (0, 1) 대 TINYINT

  5. ==============================

    5.이 부울 및 TINYINT (1) 기능적으로 동일하다는 사실이지만 그것은 당신이 뭘 하려는지의 의미 론적 의미를 전달하기 때문에, 부울이 선호하는 옵션이 있어야합니다. 또한, 많은으로 ORMs은 프로그래밍 언어의 기본 부울 형으로 부울 변환합니다.

    이 부울 및 TINYINT (1) 기능적으로 동일하다는 사실이지만 그것은 당신이 뭘 하려는지의 의미 론적 의미를 전달하기 때문에, 부울이 선호하는 옵션이 있어야합니다. 또한, 많은으로 ORMs은 프로그래밍 언어의 기본 부울 형으로 부울 변환합니다.

  6. ==============================

    6.MySQL로 연결하기 위해 단정를 사용하여 내 경험이 중요합니까 것입니다. 나는 다음과 같은 스크립트를 사용하여 입력 가능 TINYINT (1)에 비 null 허용 비트 (1) 변경 :

    MySQL로 연결하기 위해 단정를 사용하여 내 경험이 중요합니까 것입니다. 나는 다음과 같은 스크립트를 사용하여 입력 가능 TINYINT (1)에 비 null 허용 비트 (1) 변경 :

    ALTER TABLE TableName MODIFY Setting BOOLEAN null;
    

    그리고 단정는 예외를 던지기 시작했다. 나는 전에하고 스크립트 후 차이를보고했습니다. 그리고 발견 비트 (1) TINYINT (1)로 변경했다.

    나는 다음 실행 :

    ALTER TABLE TableName CHANGE COLUMN Setting Setting BIT(1) NULL DEFAULT NULL;
    

    어떤 문제를 해결했다.

  7. from https://stackoverflow.com/questions/3751853/boolean-vs-tinyint1-for-boolean-values-in-mysql by cc-by-sa and MIT license