Gints Plivna Posted September 2, 2010 Report Share Posted September 2, 2010 (edited) + kaut kas minēja, ka klienta nosaukumu izmantot kā ID. Neesmu eksperts, bet vai tas nevarētu radīt problēmas, ja pie klienta ievadīšanas tiks norādīts nepareizs nosaukums, tad pēc tam būs grūti atrast viņu? Tas ko tu tagad aizskar ir fundamentāls kašķis - surogātatslēgas vs naturālās atslēgas. Par to zināmas tautas daļas var strīdēties līdz zilai sejai, tas ir strīds ar reliģisku nokrāsu :) Bet - atceries, ka visās normālās datubāzēs, ja neskaita MySQL MyISAM tabulas un vēl šo to, ārējo atslēgu laukos nevar ievadīt citas vērtības kā tās, kas ir definētas saistītās tabulas primārās atslēgas laukos. Tas ir, ja tev ir klienti ar idiem 1, 5, 7, tad tu varēsi ievadīt tikai produktus, kuriem saistītais klients ir ar tādiem pašiem idiem, vai arī ja lauks nav obligāts, tad atstāt to tukšu. Attiecīgi, ja tu maini idu klientam, tad to nevarēs izdarīt, ja tam būs saistītie produkti. No šī arī izriet galvenā naturālo atslēgu problēma - dzīvē nosaukumi, numuri utml parasti ātrāk vai vēlāk mainās, un tas rada nevajadzīgas problēmas iekš db, kas surogātslēgām nekad nav. Tiesa gan, protams, arī tām ir savi mīnusi. Ārējās atslēgas ir ļoti būtisks datu kvalitātes nosacījums, taču diemžēl MyIsam tabulām tādas iespējas nav. Edited September 2, 2010 by Gints Plivna Quote Link to comment Share on other sites More sharing options...
codez Posted September 2, 2010 Report Share Posted September 2, 2010 + kaut kas minēja, ka klienta nosaukumu izmantot kā ID. Neesmu eksperts, bet vai tas nevarētu radīt problēmas, ja pie klienta ievadīšanas tiks norādīts nepareizs nosaukums, tad pēc tam būs grūti atrast viņu? Labāk par id izmantot veselu skaitli, kurš tiek automātiski palielināts (Mysql-ā to nodrošina pats serveris) pie katra inserta. Un tas pats par pašu spiedi. No vienas puses viņas numurs, kas tiek iededzināts uz viņas ir unikāls!! Bet viņu tomēr ievada ar roku!! Ja nu piemēram pārskatās un 6 vietā ievada 8. Tad pēc reālā cipara viņu neatradīs! Tādēļ man šķiet ka ID šajā DB labāk ir ģenerēt automātiski. Tas pats, labāk izmantot id no 1..N, ko ģenerē datubāzes serveris. Quote Link to comment Share on other sites More sharing options...
bluebird Posted September 2, 2010 Author Report Share Posted September 2, 2010 Ok! Tā es arī darīšu!! Izmantošu automātisko ģenerēšanu. Bet vai šis pielikumā esošais DB modelis būs ok. Un laukumi ārējām atslēgām?? :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.