Jump to content
php.lv forumi

Datu bāzes modelis


bluebird

Recommended Posts

+ 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 by Gints Plivna
Link to comment
Share on other sites

+ 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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...