Avatar billede Slettet bruger
10. februar 2006 - 14:00 Der er 11 kommentarer og
1 løsning

Hvilken datatype er "Til/fra" eller "True/False" via phpMyAdmin?

Hejsa.

Ja, hvilken datatype er: "Til/fra" eller "True/False"?

Og hvordan skal jeg angive:
- Kollation (Collation),
- Attributter,
- Nulværdi,
- Standardværdi og
- Extra.

Jeg bruger:
phpMyAdmin 2.7.0-pl2
MySQL 4.1.16-nt
IIS
ASP
Avatar billede Slettet bruger
10. februar 2006 - 14:01 #1
...det er et felt jeg skal bruge, ved oprettelse af ny bruger i forum, for at chekke om brugeren har aktiveret sin profil. :-)
Avatar billede erikjacobsen Ekspert
10. februar 2006 - 14:11 #2
Jeg plejer at bruge en lille int (TINYINT) og så lade 0 være false, og 1 true.
Avatar billede barklund Nybegynder
10. februar 2006 - 14:19 #3
/me samtykker
Avatar billede horsmark Nybegynder
10. februar 2006 - 15:14 #4
ENUM:
Fordelen ved ENUM er at man kan se i tabellen hvilke værdier der er tilladt...
Avatar billede pidgeot Nybegynder
11. februar 2006 - 00:39 #5
Teknisk set er den rigtige værdi en BIT, men inden MySQL 5.0.5 (5.0.3 for MyISAM) behandles dette som TINYINT(1). (Desuden viser PMA ikke BIT, så du skulle selv strikke en passende CREATE TABLE eller ALTER TABLE kommando sammen.)

ENUM er ganske rigtigt udemærket, men når der er tale om en boolean, er det efter min mening en smule overkill - særligt fordi det mere eller mindre er standard at bruge en TINYINT(1) med 0 som falsk og 1 som sand, og der endda er nogle værktøjer der selv omskriver fra 0 og 1 til sand og falsk når kolonnen er en TINYINT(1).
Avatar billede erikjacobsen Ekspert
11. februar 2006 - 00:42 #6
Enum er mindre portabel til andre databasesystemer end en int.
Avatar billede Slettet bruger
24. februar 2006 - 23:04 #7
erikjacobsen:
Vil du venligst lægge et svar, så jeg kan tildele dig points?

pidgeot:
Jeg vil også gerne tildele dig lidt points, for din grundige forklaring. :-)

Er der noget specielt jeg burde gøre/ burdevide, for at få min "til/fra" funktion til at virke? Det er nemlig allerførste gang jeg prøver dette...
Avatar billede pidgeot Nybegynder
24. februar 2006 - 23:08 #8
Faktisk ikke - bruger du en TINYINT(1) skal du bare selv sørge for at huske at 0=falsk og 1=sand.

Det gør dog at du nok selv bliver nødt til at konvertere fra sand/falsk til 1/0 i dine scripts, men det burde ikke være noget problem.
Avatar billede Slettet bruger
24. februar 2006 - 23:43 #9
pidgeot:
"konvertere fra sand/falsk til 1/0 i mine scripts"??? Hvordan i al verden gør jeg det?
Jeg frygtede nok, at der skulle mere til, end "blot" en speciel datatype i MySQL...

Hør her:
Hvis du har en færdig løsning, som du kan paste herind til mig, for højer jeg meget gerne points, sådan at du tildeles 100 points, og erikjacobsen stadig tildeles 50 points. ;-)
PS: Jeg bruger ASP.
Avatar billede pidgeot Nybegynder
25. februar 2006 - 01:07 #10
Jeg kan ikke ASP, men det er nu ikke så svært - du kan sikkert selv konvertere det her meget simple PHP-kode:

if ($boolean==true)
  $value=1;
else
  $value=0;

Alternativt kan du også bare skrive 1 hvor du normalt ville skrive true, og 0 hvor du ville skrive false - mere er der ikke til det.
Avatar billede erikjacobsen Ekspert
25. februar 2006 - 08:13 #11
Jeg samler slet ikke på point, tak.
Avatar billede Slettet bruger
27. februar 2006 - 21:48 #12
Ok, så er det vist på tide, at få sat et punktum for dette spørgsmål, da alting er på plads nu.
Jeg takker jer begge to mange gange, for jeres tid, ihærdighed og delen af erfaringer med mig! :-)
erikjacobsen samler ikke på points, så jeg tildeler pidgeot alle points.

Igen: Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester