602SQL-┌plnß dokumentace Index   Tisk  

Vztah 1:N

Propojovacφ sloupce A a B jsou stejnΘho typu a propojujφ dva zßznamy prßv∞ tehdy, pokud v nich majφ stejnou hodnotu. Na propojenφ zßznam∙ v tomto vztahu lze hled∞t t°emi zp∙soby a vÜechny t°i zp∙soby lze libovoln∞ kombinovat.

Spojenφ tabulek

Pomocφ dotazu SELECT * FROM TA, TB WHERE TA.A=TB.B lze zφskat celkov² p°ehled o vÜech vazbßch mezi zßznamy. Ve formulß°i do odpov∞di na tento dotaz:

Formulß° na propojenφ od TA k TB

V formulß°i vedoucφm do tabulky TA (nebo do dotazu, kter² z nφ bere zßznamy) lze vytvo°it relaΦn∞ propojen² subformulß° se zßznamy z tabulky TB. V ka₧dΘm zßznamu z TA budou v subformulß°i ty zßznamy z TB, kterΘ jsou k n∞mu p°ipojenΘ.

Subformulß° navrhnete do tabulky TB. P°i navrhovßnφ hlavnφho formulß°e do TA v popisu slo₧ky Subpohled zadßte krom∞ jmΘna subformulß°e:

Vklßdßnφ zßznam∙ s propojovßnφm

V hlavnφm formulß°i (superformulß°i) lze vklßdat zßznamy do TA nebo je ruÜit. V subformulß°i lze vklßdat zßznamy do TB nebo je ruÜit. Pokud vlo₧φte zßznam do TB stiskem klßvesy Insert, pak se v n∞m do sloupce B zapφÜe hodnota sloupce A z vybranΘho zßznamu v hlavnφm formulß°i. Tφm automaticky vznikne propojenφ mezi zßznamem vlo₧en²m do subformulß°e a zßznamem, v n∞m₧ se subformulß° nachßzφ. (Tento mechanismus vÜak funguje pouze tehdy, je-li v²b∞rovß podmφnka subformulß°e ve v²Üe uvedenΘm tvaru.)

Tento zp∙sob prßce je velmi nßzorn². Hodφ se zejmΘna pro "siln∞jÜφ" verzi vztahu 1:N, v nφ₧ v TB neexistujφ zßznamy, kterΘ by nepat°ily k ₧ßdnΘmu zßznamu v TA. Pomocφ subformulß°e nelze toti₧ zßznam v TB "odpojit" od zßznamu v TA (leda p°epsßnφm hodnoty sloupce B), ani "p°ipojit" ji₧ existujφcφ, ale dosud nep°ipojen² zßznam z TB.

Sloupec A musφ mφt v zßznamech v TA unikßtnφ hodnoty. Toho lze dosßhnout nap°φklad automatick²m p°id∞lovßnφm unikßtnφch hodnot zajiÜt∞n²m v nßvrhu tabulky TA.

SamostatnΘ formulß°e

Alternativn∞ je mo₧no zobrazovat zßznamy z TB v samostatnΘm formulß°i, nevlo₧enΘm do hlavnφho formulß°e, n²br₧ otevφranΘm tlaΦφtkem s akcφ Otev°φt relaΦn∞ synchronizovan² formulß°. Parametry tΘto akce jsou jmΘno formulß°e do TB a jmΘno propojujφcφ relace.

Formulß° na propojenφ od TB k TA

V formulß°i vedoucφm do tabulky TB (nebo do dotazu, kter² z nφ bere zßznamy), lze vytvß°et propojenφ na zßznamy z TA. Lze tak Φinit dv∞ma cestami:

Hlavnφ formulß° do TB umo₧≥uje vklßdßnφ a ruÜenφ zßznam∙ v TB. Pomocφ relaΦnφho formulß°e lze takΘ vklßdat a ruÜit zßznamy v TA. Lze pracovat i se zßznamy z TB, kterΘ nejsou spojeny s ₧ßdn²m zßznamem z TA. Propojovat lze i fiktivnφ zßznam v TB, propojenφ se pak zapφÜe do databßze p°i opuÜt∞nφ zßznamu.

RelaΦnφ formulß° se z programu dß otev°φt funkcφ Relate_records.