webForumDet fria alternativet

ENUM eller INT(1)?

3 svar · 175 visningar · startad av ampy

ampyMedlem sedan feb. 20011 512 inlägg
#1

Om man har en kolumn som endast ska innehålla två värden, true eller false, vilken datatyp rekommenderas då att användas?

Tidigare har jag alltid använt mig av datatypen int med 1 i längd. 1 är true och 0 är false.

Men ska man hellre använda datatypen ENUM där man sätter längd till exempelvis 'N','Y'?

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det beror på vilka krav som finns. Om du inte upplever något problem med nuvarande lösning ser jag ingen anledning att byta.

PaceMedlem sedan juni 20015 947 inlägg
#3

Jag rekommenderar int (eller ännu hellre tinyint).

Då kan man använda sql-satser såsom WHERE jabla AND NOT bobla i stället för WHERE jabla = 'Y' AND bobla = 'N'. Då kan man ju om man byter till en databas som hanterar true/false fortfarande använda sql-satserna. Använder du enums måste du skriva om varje fråga.

ampyMedlem sedan feb. 20011 512 inlägg
#4

Jag använder int och kommer, efter att ha läst era inlägg, fortsätta att göra det. Varför jag undrade var för att MySQL själva har valt att använda typen ENUM i databasen som heter 'mysql'.

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb