[ shaDy @ 31.12.2004. 00:02 ] @
Pozdrav,

Mozda je neko piso o ovome ali nisam uspeo da pronadjem..

Kod samog dizajna baze, kada je pametno da polje bude NULL sto je po defaultu a kada da se stavi NOT NULL...

Po mom misljenju ne vidim neku razliku ali sigurno da postoji, jer inace nebi postojala ova opcija..

Mozeli neko da nam pojasni ovo i iznese svoje strucno misljenje?

Pozdrav ;)
[ zi:: @ 31.12.2004. 06:17 ] @
Ima razlike.

Vrednost '' (dakle prazan string) se koristi kada recimo nista nije uneto u input formi (dakle, korisnik nije uneo vrednost), a vrednost NULL se koristi kada vrednost nije dodeljena. Da pojasnim primerom: prosirujes bazu podataka, stavis default NULL, do sada uneti slogovi imaju vrednost NULL, a kasnije uneti slogovi mogu imati neku unetu vrednost, ili ''.

Ako ti ovo ne treba, toplo preporucujem da se stavi not NULL.

Kod upita na kolonama koje imaju NULL treba pripaziti na sledece: Zamisli da imas 200 slogova, 100 imaju neku vrednost, 50 ih ima '', a 50 je NULL. Ako napravis upit:

Code:
select count(*) from tabela where kolona!='';

Moguce je da ces ocekivati da rezultat bude 150, ali nije. Bice 100. Dakle, u upitima se NULL stvarno ne uzima u obzir.

Takodje, stedis na prostoru ako ne stavis NULL kao mogucnost, po slogu stedis jedan bit :)
[ Dejan Topalovic @ 31.12.2004. 16:21 ] @
NOT NULL stavljas na kolone cija vrijednost mora biti unesena pri kreiranju novog recorda. Dakle, ako ne zadas vrijednost za tu kolonu, onda ti nije dozvoljen unos tog recorda (zapisa, unosa).
[ _owl_ @ 01.01.2005. 05:03 ] @
Pa razlika je semanticke prirode (a ne kao sto je neko slikovito objasnio sa unosom praznog polja iz forme). NULL oznacava da u datom trenutku nije poznata vrednost odredjenog podatka (iz razloga koji proisticu iz logike aplikacije). NOT NULL ogranicenje bi stoga trebalo koristiti kada podatak iz te kolone mora imati definisanu vrednost (pa makar obo bila i prazan string, 0 ili sta vec sto bi mnogi na ovom forumu poistovetili sa "").
[ shaDy @ 01.01.2005. 12:04 ] @
POzdrav Narode,

Srecna nova,

Thx na odgovorima.. Ukapiro sam sustinu..

pozdrav