03. februar 2011 - 12:00Der er
14 kommentarer og 1 løsning
Hvad er Allow Nulls?
Hej jeg opretter database
Primary Key-LoginId - Int-is identidy -yes
Username-Varchar(50)
Password-Varchar (50)
Men på hver kollone er der et sted hvor man kan sætte hak som hedder AlLow Nulls, skal jeg sætte hak til dem? eller er det lige meget?? og hvad bruges det til??
Det betyder simpelthen om et felt maa vaere tomt, om det kan tillades at mangle en vaerdi. For en tabel med login kan hverken Username eller Password naturligvis vaere tomme. Men hvis du ogsaa havde en kolonne med foedselsdag burde den nok vaere AllowNulls, for ellers kan du ikke indfoere en bruger hvis du ikke kender foedselsdagen.
Hvis, paa den anden side, det ikke var en login tabel men en foedselsdagskalender saa er sagen naturligvis anderledes, foeselsdagen er vaesenlig for at det kan fungee, og i det tilfaelde kan foedselsdagen ikke vaere AllowNulls.
Så Vis jeg sætter et hak til Allow Nulls Betyder det at den ikke må være tom og skal udfyldes forstår jeg rigtigt?? Er det så bare ikke bedst at bruge den over det hele istedet for at den er tom?
Ok Allow Nulls giver lov til at lade feltet være tomt. Vil i så anbefale at jeg ikke bruger det? så undlader jeg bare at sætte et hak i . Så er jeg sikker på at alle udfylder felterne hvilket SKAL gøres.??
Hvis du ikke sætter hak i vil den indsætte en form for standard værdi, alt efter datatype, hvis ikke den får en af brugeren.. F.eks. hvis du har et felt der hedder alder, som brugeren ikke udfylder, vil AllowNulls indsætte værdien null (ingenting) og ellers vil den indsætte tal-værdien 0.
Hvis du vil tvinge brugeren til at udfylde et felt skal du gøre det i din form. Som udgangspunkt ville jeg sætte det på alt undtagen din Primary Key, da det gør det nemmere at teste hvor vidt feltet har en værdi.
Blot lidt info. Er ikke for at svare på dit spørgsmål.
Hvis Allow null ikke er sat skulle den ikke selv sætte en standart værdig. Derimod skulle du gerne få en exeption/en fejl.
For at den sætter en standart værdig skal default sættes til en værdig på din column.
Jeg vil bestemt anbefale du sætter den til ikke at må kunne tage nulls. Det vil ikke give nogen mening hvis null alligevel skulle havne i dine database felter.
Validering af felter som er påtvunget bør ske inden du forsøger at indsætte i databasen.
Årh, det er sandt, man skal selv sætte en default.. My Bad!
Men jeg mener at hvis du har testet for om felterne er udfyldt inden du sætter ind i databasen, kan du efterfølgende teste for en null-værdi for at være sikker på at det er indsat korrekt..
Mens du arbejder er det jo nok selvfølgelig at foretrække hvis programmet giver dig en exeption når intet er udfyldt, men kunne forestille mig at det gav problemer hvis den gav exeptions i brug.. Der ville jeg nok personligt foretrække selv at teste for null-værdier og informere brugeren hvis noget var gået skævt..
Hvad saa, mikkeltheman, konkluderer du spoergsmaalet? Du bad for tre dage siden i #8 om et svar for points. Det kom ikke, saa vejen frem maa vel vaere at du selv opretter og accepterer svaret for at faa traaden afsluttet.
Et tilbageblik: Dit spoergsmaal gik paa mssq og Null. Den database vi brugte paa skolen, og vist nok 'store' databasesystemer som Oracle vil ikke tillade at der ikke indfoeres vaerdier i en kolonne der er NOT NULL, og det svarede jeg ud fra. Jeg var ikke opmaerksom paa at Mysql og velsagtens MSSQL (som jeg ikke har) er mere tolerante og indsaetter en default vaerdi, saa mit svar var forkert. Det laerte jeg ved.
Men med mindre du forventer flere svar kan jeg saa bede dig lukke spoergsmaalet, for god ordens skyld og saa det ikke bliver staaende som aabent i min (og andres) liste af indlaeg?
Hvis du mener at det er på din plads skal jeg ikke takke nej til point.. Synes dog ikke at jeg skal have dem allesammen, da platik kom med en mere fyldestgørende forklaring..
mikkeltheman, maa jeg spoerge hvad dine planer er med hensyn til denne traad? Du fik et svar som du bad om saa du kan lukke spoergsmaalet (for god ordens skyld og saa det ikke laengere staar som aabent i min og andres liste af indlaeg.) Eller har du andre planer?
Ja, du lukkede traaden efter at jeg havde lavet mit indlaeg #13, og velsagtens som resultlat af indlaeg #13.
Hvordan kommer du pludselig i tanker om det nu godt tre maaneder efter? !!!!
Synes godt om
Ny brugerNybegynder
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.