Osnovni problem je:
Citat:
Neznalica_sa_ugla:
1) Nemoguće je napraviti podatke za osobu bez uzetog id , jer je to prefiks , nekih podataka.
Ovo predstavlja loš dizajn.
Postoji nekoliko načina da se ovo prevaziđe:
1 Autoincrement polje (u bazama koje to podržavaju). U ovom slučaju potrebno je upisati "default" slog u bazu (znači u polja koja su not null upisati neku default vrednost, u ostala null), onda uneti ostale podatke na ekranu, pa onda uraditi update sloga sa datim ID. Prilikom inserta, može se dobiti nazad autoincrement ID (zaboravio sam tačno sintaksu koja vraća vrednost autoincrementa kod inserta).
2. Kod baza koje nemaju autincrement polja, kao Oracle, koriste se sekvence - select mysequence.nextval into myID from dual
3. ID se uzima iz pomoćne tabele u koju je upisan ili poslednji dodedljeni ID ili prvi slobodni. U ovom slučaju se na početku transakcije na kratko zaključava samo ovaj jedan slog dok se vrednost ID-a inkrementira, onda se commit-uje inkrementacija, a onda se sa dobijenim ID-om popunjava ulazna forma.