[alg] Waarde gebruiken als boolean

Pagina: 1
Acties:

  • Mir
  • Registratie: Maart 2001
  • Niet online
Hoi,

Je hebt een formulier met een hoop invoer vakken. Deze heb je netjes afgedicht met vinkjes die dmv javascript gedisabled(default) en enabled kunnen worden als de gebruiker een vinkje aanzet.

Deze gegevens worden opgeslagen in een database.
Wanneer een andere gebruiker een overzicht van dat formulier wil zien krijgt hij het standaard formulier voor zich. Hierbij moet dus gekeken worden of een vinkje in de eerste sessie uit was of aan om zo ook het vinkje in het overzichts form aan/uit te zetten.

Momenteel heb ik dit gedaan door ook de vinkjes een field te geven in de tabel. Maar ik vroeg mij af:

Wat is jullie mening over het gebruiken van de ingevulde waardes als boolean.
Hiermee bedoel ik dus: Vult iemand een invoer vak in dan wordt deze invoer opgeslagen in de tabel.
Wanneer het overzichts formulier de tabel bekijkt kan deze kijken naar de waardes van het field. Is een field leeg (Null) dan was het vinkje uit, is deze ingevult dan was hij aan.

Dit in tegenstelling tot het gebruiken van een apparte record om te controlleren of het vinkje uit/aan was.

(ik heb het hier even over vinkjes gehad, maar je kan natuurlijk nog veel meer mogelijkheden bedenken)


hoopt dat m'n verhaal duidelijk is

[ Voor 0% gewijzigd door Mir op 26-08-2002 11:37 . Reden: Record --> field ... is nog vroeg mensen ]


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Is het niet veel handiger om het een integer mee te geven? En dat dan op een binaire manier opbouwen?
Dus stel 1e en 3e ding zijn aangevinkt, dan krijgt je waarde 5 in de database (1 + 4)

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


Verwijderd

Mir schreef op 26 augustus 2002 @ 10:35:

.....

Momenteel heb ik dit gedaan door ook de vinkjes een record te geven in de tabel. Maar ik vroeg mij af:

....
je bedoeld denk een field. record is een rij, maar goed.

wat ik denk dat je bedoeld is dat je voor ieder invulveld een vinkje hebt staan.
Dan zou ik lekker kijken bij het weergeven van de gegevens of er iets in het invulveld staat en dan vinkje aanvinken.

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Mir schreef op 26 augustus 2002 @ 10:35:
[knip]
Wanneer het overzichts formulier de tabel bekijkt kan deze kijken naar de waardes van het record. Is een record leeg (Null) dan was het vinkje uit, is deze ingevult dan was hij aan.
[knip]
Als ik 't me goed herinner gaat dit een beetje tegen een 'officiële' regel in.
Volgens mij zou een column alleen NULL mogen bevatten als je niet weet wat de waarde moet zijn.

In dit geval weet je dat 't vinkje uit stond en zou je er imho beter een '0' in kunnen zetten.

  • Mir
  • Registratie: Maart 2001
  • Niet online
TheRookie schreef op 26 augustus 2002 @ 11:26:
[...]


Als ik 't me goed herinner gaat dit een beetje tegen een 'officiële' regel in.
Volgens mij zou een column alleen NULL mogen bevatten als je niet weet wat de waarde moet zijn.

In dit geval weet je dat 't vinkje uit stond en zou je er imho beter een '0' in kunnen zetten.
Ja, maar stel dat je het invoer veld "Naam" hebt, dan heet je ineens '0' :)
Maar als een invoer veld leeg is doe je toch een insert met "" wat naar mijn idee gelijk staat aan Null?


Binair idee is wel een goeie!
Helaas biedt dit niet voor alle talen de oplossing

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:09
Paxlie schreef op 26 augustus 2002 @ 11:05:
Is het niet veel handiger om het een integer mee te geven? En dat dan op een binaire manier opbouwen?
Dus stel 1e en 3e ding zijn aangevinkt, dan krijgt je waarde 5 in de database (1 + 4)
Dat heet een bitfield en kan wel, maar is niet netjes. Het idee van een relationele database is nu juist dat voor elk veld in je dataset een aparte kolom bestaat, waar je afzonderlijk op kunt selecteren en manipuleren. Als je begint aan bitfields, kun je ook wel andere velden gaan samenvoegen en dat is niet de bedoeling.

Ik opteer dus ook voor een aparte kolom per 'ding' wat je aan en uit kan vinken. Het type daarvan is dan een INT, met een waarde van 0 (uitgevinkt) of 1 (aangevinkt); NULL alleen als er geen zinnige waarde in te vullen is (formulier nog niet ingevuld of iets dergelijks).

  • Mir
  • Registratie: Maart 2001
  • Niet online
Ik denk dat jij niet het hele verhaal begrepen hebt :)
Null slaat op de versie "Waarde gebruiken als boolean".
Daar heb je dus helemaal niet te maken met een field die een vinkje representeerd.
Je kijkt dan dus alleen naar het veld "Naam". Is deze leeg--> vinkje uit
...is deze 'vol' --->vinkje aan.

[edit]
Wat ik trouwens nog op te merken heb over het bitfield principe.
Je gaat dan plaatsen hard coden. Dat vind ik altijd een beetje eng. Ik ben erg voor flexibiliteit, dat zie ik hier niet in terug.

Je gaat alsware een klein dbase-je in je coden bakken omdat je nummers aan namen(vinkjes (of 'dingen' :P )) gaat koppelen en dus al in je code een omslag punt genereerd. Niet geheel mijn stijl.

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Mir schreef op 26 augustus 2002 @ 11:39:
Ja, maar stel dat je het invoer veld "Naam" hebt, dan heet je ineens '0' :)
Maar als een invoer veld leeg is doe je toch een insert met "" wat naar mijn idee gelijk staat aan Null?
Ik had 't alleen over de vinkjes ;)
[edit]
Van de MySQL Site:

Problems with NULL Values:
The concept of the NULL value is a common source of confusion for newcomers to SQL, who often think that NULL is the same thing as an empty string "". This is not the case!
en Working with NULL Values
Conceptually, NULL means missing value or unknown value and it is treated somewhat differently than other values.

  • Mir
  • Registratie: Maart 2001
  • Niet online
TheRookie schreef op 26 augustus 2002 @ 11:51:
[...]

Ik had 't alleen over de vinkjes ;)
[edit]
Van de MySQL Site:

Problems with NULL Values:
The concept of the NULL value is a common source of confusion for newcomers to SQL, who often think that NULL is the same thing as an empty string "". This is not the case!
Nee nee..! :)
Dit idee had ik jaren geleden..

Ik had dit dan ook wel verwacht hoor :)
Maar ik doelde meer op dat je in principe Null of "" hetzelfde kan zien als we kijken naar "Vinkje uit of aan"

edit;
Niet alleen newcomers to SQL :)
..maar dat is hun 'fout'

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Tuurlijk wel, maar dan ga je volgens MySQL dus tegen 'het concept' in :P
Pagina: 1