Jump to content
php.lv forumi

Ārējo atslēgu definēšana


bluebird

Recommended Posts

Labs vakars :)

Diez šodien visi pa krogiem vai pie datoriem arī kāds sēž :)

 

Iepriekš es jau biju izvērsis diskusiju par datu bāzes modeli, tad nu tagad man aktuāls jautājums ir par ārējo atslēgu definēšanu.

 

Ideju kā darbojās ārējās atslēgas es saprotu, bet es nemāku iekš MySQL Workbench nodefinēt viņas!

Visu savu stāstu es balstu uz pielikumā pievienoto attēlu!

 

Pēc iepriekšējās diskusijas un ieteikumiem es izlēmu ka ārējās atslēgas būs tikai tabulai moltz_products.

 

Tad nu es vēlos tabulai "moltz_products" piesaistīt tabulu "moltz_press".

 

Mani nepamet sajūta, ka es esmu nepareizi nodefinējis tās atslēgas!

 

Rēlācijas starp tabulām:

1. Produktam var būt piesaistīta tikai viena prese

2.Presei var būt piesaistīti n-tie produkti

3.Produktam var būt piesaistīts tikai viens klients

4.Klientam var būt piesaistīti n-tie produkti

 

Ja nav pareizi, tad kā pareizi man nodefinēt!

Paldies :)

post-4355-098836700 1283538733_thumb.jpg

Link to comment
Share on other sites

Ir OK. Notācija jau pati norāda, kā ir pareizi. Šīs te vārnu kājas norāda kardinalitāti (t.i. cik vienam ierakstam var būt saistīto ierakstu). Tur kur ir tā apgrieztā bulta, tas nozīmē daudz - tātad vienai presei daudzi produkti un vienam klientam daudzi produkti. Savukārt kur ir taisns nogrieznis (ok vienkārši ar divām svītrām pārsvītrots), tur ir viens, tātad produktam uz abiem galiem viena prese un viens klients.

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

Labi!

Paldies!

Bet patiesībā ir tā... jo vairāk kaut ko saprast sāku, jo vairāk saprotu ka pilnīgi neko nesaprotu :) Palasu kaut ko, lai izprastu un tur jau kaut kas parādās kas atkal jāpēta! :) Un kad kaut ko sāc reāli darīt rodas vesela kaudze jautājumu!! :)

 

Vakar kad ķēros klāt pie interfeisa ģenerēšanas, tad man radās šāds jautājums.

Piemēram es uzģenerēju formu priekš produktu pievienošanas. Kad pievienoju produktu, tad lai norādītu spiedi man parādās laukums ar spiedes ID, kuru patiesībā lietotājam nemaz nevajag redzēt. Tam jāpaliek nepamanām. Un arī tas spiedes ID viņam reāli neko nedos. Viņs var vadīties tikai pēc spiedes numura. Tad kā tur reāli jāveido formās?

Vienā skatā jābūt ir laukumiem no produkta un no spiedes?

Link to comment
Share on other sites

Par formām un vēl jo vairāk ģenerētām (ar ko BTW?)iesaku veidot atsevišķu tēmu, jo tam īsti nav sakara ar datubāzi. Es arī godīgi atzīstos, ka šai lietā neko diez nesaprotu, tāpēc nekādus mega ieteikumus netaisos dot. Bet varu izteikt vismaz dažus iespējamos interfeisa variantus:

1) produkta pievienošana tiek izsaukta no iepriekš atrastas spiedes ekrānformas, līdz ar to spiede nav jānorāda, jo tā nāk līdz no iepriekšējās formas. Šai gadījumā vēlams kaut kur tekstā izvadīt identificējošu info par izvēlēto spiedi, lai lietotājs neizmirstu un atcerētos, kurai spiedei, tad tagad produkts tiks vadīts.

2) spiede ir kā izvēles lauks, kurā lietotājam rāda tai raksturīgu(-s) parametru(-s), piem., cik atceros bija runa par spiedes numuru, iespējams vēl kaut kas, kas dabiski lietotājam ļauj spiedi identificēt. Ja spiedes ir maz, tad šis variants der, ja daudz, tad saraksts būs pārāk garš un nepārskatāms.

3) spiedes piemeklēšanai tiek taisīta atsevišķa forma, kur pēc šādiem tādiem kritērijiem, lietotājs nepieciešamo spiedi atrod. Smagnējs un relatīvi neērts pasākums, bet standarta veids, kā tiek risinātas vispārīgas ģenerēšanas probzas, lai piemeklētu vērtību laukiem.

4) spiedes piemeklēšanai rāda piem spiedes numura ievadlauku kā tekstu, kur pēc noteikta skaita iesistiem simboliem dinamiski piemeklē variantus un lietotājs izvēlas nepieciešamo. Mazliet izvirtīgi, bet ja variantu daudz un ir dabisks unikāls veids kā identificēt spiedi, tad noderīgs - skat piemēram googles meklētāja, kur piedāvā meklēšanas variantus.

 

2, 3 un 4 varinatā ir svarīgi, lai dabiskajam spiedes identificēšanas veidam unikāli atbilstu tieši viens ID, ko tad fonā programma paņems un ieliks DB, lietotājam par tādu ID neko nezinot.

 

Gan jau ka vēl kaut ko var izdomāt, bet kā jau teicu par interfeisu un tā kodēšanu neko daudz nezinu un negribu zināt :)

 

Gints Plivna

http://datubazes.wordpress.com

Edited by Gints Plivna
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...