webForumDet fria alternativet
Logga in / Bli medlem

ENUM eller INT(1)?

Databaser & SQL

3 svar · 177 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Trådstart#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'?

Medlem sedan dec. 200012 464 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.

Medlem sedan juni 20019 024 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.

Medlem sedan feb. 20011 498 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'.

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)