hey
k moet voor informatica een database systeem maken en daarbij moeten wij iets van boolean gebruiken om te zorgen dat de waarde true of false is..
maar nu hebben ik op inet gezocht maar k word er niet echt veel wijzer van..
weet iemand hoe je die boolean moet gebruiken ofzoiets??
In Booleaanse logica maak je gebruik van de waarden TRUE en FALSE. In de meeste programmeertalen wordt FALSE gedefinieerd als 0 en TRUE als ongelijk aan 0 (!0)
Je kunt rechtstreeks testen op TRUE of FALSE;
<?php
if (eenofanderefunctie () == false) {
}
?>
maar meestal kort je het in. Elke expressie in een programmeertaal evalueert namelijk naar TRUE of FALSE.
<?php
if (eenofanderefunctie ()) {
}
?>
Je vraag heeft een wat algemeen karakter, dus dit is een wat algemeen antwoord ;-)
Kan ook, maar hij had het zo duidelijk over true of false, dat dat me de beste oplossing leek. Mede omdat je dan aan kan geven dat alleen true of false als waarde mogelijk zijn. Bij een tinyint is er meer mogelijk en zou je andere controles toe moeten passen.
Vandaar dus. Maar een 1 of 0 in tinyint kan ook.
Volgens mij is dit topic gisteren ook aan de orde geweest; een ENUM test volgens mij trager op grote tabellen, omdat je strings moet vergelijken. Als je een TINYINT gebruikt test hij op integers en dat gaat volgens mij sneller. Vergelijk de volgende twee query's:
SELECT veldnaam1, veldnaam2
FROM tabelnaam
WHERE bool = 1 (als TINYINT)
of:
SELECT veldnaam1, veldnaam2
FROM tabelnaam
WHERE bool = 'true' (ALS ENUM)
Tjah, wat dat zoeken betreft heb je wel gelijk, en dan zou ik ook een tinyint(1) gebruiken.
TINYINT(1) UNSIGNED -> UNSIGNED, omdat alleen 0 en hoger mag. (0 of 1)
En omdat het in dit geval een informatica opdracht betreft (waarbij je nooit een heel grote db gebruikt) en omdat die aangeeft dat hij een waarde true of false moet gebruiken voor die opdracht zou ik wel de ENUM gebruiken. Mede omdat hij min MySQL de Boolean moet gebruiken, als je puur van MySQL uit gaat, dan kan je niet aangeven dat een TINYINT(1) veld alleen de waarde 0 of 1 mag bevatten. Zodoende mijn keuze.
Zelf gebruik ik net als jij in grote (of mogelijk grote) databases wel de TINYINT(1) oplossing, om de reden die je al noemde. -> Zoeksnelheid