[quote=“gorrc”]No meni je malo teško prihvatiti utvrđivanje činjeničnog stanja podaka koje se ipak može promjeniti i ne postoji nikakva garancija da će taj podatak u nekim drugim uvjetima biti isti.[/quote]???
Daj pokušaj to reći zdravo-seljački.
[quote=“gorrc”]Nisam našao niti jedan pravi primjer gdje bi korištenje internal primary key pod uvijetom da je unique primary key dobar bila neka prednost.
Osim kod self joina i odnosa parent child. Što je opet moguče da nisam dobro istestirao jer kad sam vidio da kod internal ključa sam dobio što sam htio nisam se više time zabavljao.[/quote]Što ti je to “internal primary key”? Što znači “unique primary key”? Pa svaki je primarni ključ jedinstven, nema primarnog ključa koji nije “unique”?
[quote=“gorrc”]Malo sam potražio po webu i našao sam na ne baš referentnoj stranici što se baze tiče, no primjer je i više nego dobar. Vaša aplikacija koja za gradove uzima poštanski broj neće raditi u New Orleansu jer čak četri grada imaju isti poštanski broj:)[/quote]Vidi, svrha školskih primjera je da ti objasne logiku. A logiku si sasvim dobro razumio. U Hrvatskoj hrpa baza koristi poštanski broj grada jer zadovoljava potrebe. A što se pripetavanja tiče, da se citiram:[quote=""]Zato se u takvim situacijama često koriste umjetni, dodijeljeni jednostavni atributi za koje je unikatnost garantirana unutar neke domene i uz neke prihvatljive ograde[/quote]Šifrarnik koji pošte imaju je zapravo šifrarnik poštanskih ureda, a ne gradova i svatko tko dizajnira bazu podataka bi to morao shvaćati. To je posve proizvoljno izmišljen podatak i nije nikakav “prirodni atribut”, ali je stabilan, dobro poznat i prilično dobro korelira sa stvarnim gradom, stoga se čini kao dobar kandidat za šifriranje gradova, ukoliko se razumije stvarna domena i prihvate stanovite ograde. Ok?
Znači, DA - bez uključivanja mozga se ne mogu raditi niti baze podataka.
Na koncu, ne kužim baš u kojem smeru želiš ići? Hoćeš li reći što? Da ne vidiš zašto ne bi kao primarni ključ koristio uvijek auto-number? Pa nema razloga zašto ne bi.
Naravno, ako ne želiš koristiti već ugrađene i efikasne mehanizme baze kojima osiguravaš integritet podataka (da nemaš nemaš dva korisnika s istim korisničkim imenom, da nemaš zabunom dva puta upisanu istu stavku računa i sl.) - ti si posve slobodan o integritetu podataka se brinuti algoritamski, uključivši i situacije gdje imaš paralelni, istodobni pristup klijenata, te tretirati bazu podataka kao običnu vreću u koju metaš podatke. Mislim - što god je tebi, kao programeru - praktičaru jednostavnije, efikasnije, fleksibilnije, bolje dokumentirano, lakše za održavanje i nadogradnju, itd.
Ono što ti možda nedostaje je saznanje da prije izgradnje fizičkog modela dolazi faza logičkog dizajna. To je razina E-R dijagrama u kojoj uopće otkrivaš izgled svoje baze mapiranjem stvarnih stvari (materijalnih i apstraktnih) u rječnik relacija i entiteta. Ovdje otrkivanje entiteta, istraživanje njihovih atributa i identiteta čini ključan dio procesa stvaranja - procesa analize i dizajna. U tom procesu tražiš ne samo dobar model stvarnog sustava, već najjednostavniji model stvarnog sustava. Utvrđivanje identiteta, relacija, proces normalizacije baze i sl. su naprosti alati kojima nastojiš nered dovesti u red.
Hoćeš li ti poslije u svim tablicama koristiti izmišljene neke brojeve, to je tvoj problem, a ponajviše stvar tvog iskustva u sve kompleksnijim i kompleksnijim bazama.