TheMisfit Posted July 20, 2007 Share Posted July 20, 2007 Via een selfjoin en een portaal geef ik op dat bepaalde records (dossiers) met elkaar te maken hebben. Dit werkt echter maar in 1 richting. dossier B wordt gekoppeld aan dossier A, maar ik zou graag hebben dat het omgekeerde dan ook automatisch waar was (en dat zonder te scripten). Iemand een idee? Quote Link to comment
0 br Posted July 21, 2007 Share Posted July 21, 2007 Beste, Hoe dat ik het doe is een aparte tabel aan te maken waarin de relaties worden bijgehouden tussen de records... Natuurlijk is het bij mij via een scripte: je maakt dus per link 2 relaties aan A --- B ; B ---A Indien je het echt wenst zonder script kan ik je niet echt verder helpen. Mvg Quote Link to comment
0 Peter Wagemans Posted July 22, 2007 Share Posted July 22, 2007 Zoiets kan met de DoSQL plug-in. Het is niet al te simpel, daarom een voorbeeld bestandje. In een notenschelp ( heerlijk toch, zo'n nederlandstalig forum ), het werkt als volgt: - er zit een "validatie door calculatie" achter sleutel B van de tussentabel - zodra het portaalrecord bewaard wordt, triggeren er een aantal sql statements die zorgen dat je referentiele integriteit in orde komt. Hoe die sql statements werken, staat in de formule gedocumenteerd. De DoSQL plug-in maakt gebruikt van de verborgen SQL engine in FileMaker zelf. FileMaker kan gestuurd worden door een eenvoudige versie van SQL, meer informatie in http://www.filemaker.com/downloads/documentation/fm8_odbc_jdbc_developer.pdf Hiervan is ook ondertussen een 9-versie. Ik geef toe dat dit geen oplossing voor beginners is. De DoSQL plug-in wordt vooral gesmaakt door developers. De meer eenvoudige oplossing van dit probleem, is je portaal niet creëerend te maken, en via globals en een scriptje te werken. Dat scriptje kan dan aan de hand van die global 2 records aanmaken of aanpassen. Al bij al ook een pak werk. Maar dit kan even niet anders. dosql commutatieve self-join.fp7 Quote Link to comment
0 TheMisfit Posted July 22, 2007 Author Share Posted July 22, 2007 Bedankt, Ik kan natuurlijk ook nog altijd een script triggeren d.m.v. bijvoorbeeld zippScript (daar ben ik al vertrouwd mee) om dat tweede record aan te maken. Ik probeer hier altijd even af te toetsen of ik wel de simpelste werkwijze heb toegepast. Bedankt voor jullie inbreng. Quote Link to comment
0 Peter Wagemans Posted July 22, 2007 Share Posted July 22, 2007 Denk erom dat je het twin record ook moet updaten als de selectie gewijzigd wordt. Denk er ook aan dat je script er niet vanuit mag gaan dat de occurrence waar je zit altijd de goeie is. Tenslotte trigger je het script met een event plug-in, en dat kan je misschien wel doen vanuit verschillende layout/occurrences van je applicatie. Tenslotte niet vergeten om een cascading delete te maken tussen de twin records... Quote Link to comment
0 RON7 Posted July 22, 2007 Share Posted July 22, 2007 Daar ik zie dat het een selfjoin is kan je het simple oplossen door gebruik te maken van auto enter calculations.Dossier A is A & B en dossier B is B & A... met deze methode heb je geen scripts nodig en zodra een key wijzigt wijzigt die ook in het andere veld Grtz Ron Quote Link to comment
0 br Posted July 22, 2007 Share Posted July 22, 2007 En zo leren we ook weer wat bij!!! Bedankt allemaal! Quote Link to comment
0 TheMisfit Posted July 22, 2007 Author Share Posted July 22, 2007 Daar ik zie dat het een selfjoin is kan je het simple oplossen door gebruik te maken van auto enter calculations.Dossier A is A & B en dossier B is B & A... met deze methode heb je geen scripts nodig en zodra een key wijzigt wijzigt die ook in het andere veld Grtz Ron Misschien heb ik 'selfjoin' hier verkeerd gebruikt, de uiteindelijke links liggen weliswaar tussen 2 records van eenzelfde tabel, maar er wordt wel gebruik gemaakt van een tussentabel om many-to-many relaties mogelijk te maken. Ik neem aan dat auto enter calculations dan geen oplossing zijn omdat je ook nog eens records moet aanmaken in de hulptabel? Quote Link to comment
0 Peter Wagemans Posted July 23, 2007 Share Posted July 23, 2007 RON7 bedoelt dat je in de tussentabel "multi-key" sleutels kunt maken. Da's inderdaad een methode die werkt, hoewel ik dacht dat ze ook nog wat nadelen had, wij gebruiken de multi-record methode in onze templates, dannydv weet misschien nog waarom we daarvoor gekozen hebben. Danny maakte onze contacten module en hij koos bewust voor de multi-record oplossing. Het systeem is dat er in de tussentabel - de portal dus - een auto-enter calculation ervoor zorgt dat sleutel A & ¶ & sleutel B gemaakt worden. Gezien beide records dan naar die multi-key relateren, kan je met 1 record in de tussentabel de relatie toch bi-directioneel maken. Misschien een voorbeeldje om deze simpele methode te illustreren? Quote Link to comment
0 TheMisfit Posted July 23, 2007 Author Share Posted July 23, 2007 RON7 bedoelt dat je in de tussentabel "multi-key" sleutels kunt maken. Da's inderdaad een methode die werkt, hoewel ik dacht dat ze ook nog wat nadelen had, wij gebruiken de multi-record methode in onze templates, dannydv weet misschien nog waarom we daarvoor gekozen hebben.Danny maakte onze contacten module en hij koos bewust voor de multi-record oplossing. Het systeem is dat er in de tussentabel - de portal dus - een auto-enter calculation ervoor zorgt dat sleutel A & ¶ & sleutel B gemaakt worden. Gezien beide records dan naar die multi-key relateren, kan je met 1 record in de tussentabel de relatie toch bi-directioneel maken. Misschien een voorbeeldje om deze simpele methode te illustreren? Dat ga ik zeker eens uitwerken. Wat ik me daarbij nog afvroeg; is er een specifieke reden waarom men (in de oplossingen die ik op dit forum terugvind) meestal een Auto-enter Calculation wordt gebruikt ipv een gewoon berekeningsveld. Quote Link to comment
0 Peter Wagemans Posted July 23, 2007 Share Posted July 23, 2007 Een auto-enter calculatie wordt altijd opgeslagen en kan geindexeerd worden. Bij een calculatie kan dat niet altijd, zeker niet als er globals of gerelateerde gegevens gebruikt worden. Dat kan belangrijk zijn als het veld in kwestie moet gebruikt worden als sleutel in een relatie. Weliswaar is dat niet erg aan de "van" kant, maar wel falicant aan de "naar" kant. Geen indexering -> relatie werkt niet. Quote Link to comment
0 TheMisfit Posted August 17, 2007 Author Share Posted August 17, 2007 Uiteindelijk heb ik het nog anders opgelost: Vanuit de hooftabel 'Dossiers' een relatie naar de jointabel 'verbanden' en dan van daaruit nog een niveau verder naar een tweede occurence van dezelfde jointabel 'omgekeerde verbanden'. tussen de tweede en de derde tabel zijn de twee keyvelden (dossier A en dossier B) gekruist. Vanuit de hoofdtabel naar de resp. hulptabellen is het 'aanmaken van records' steeds toegestaan. Uiteindelijk maak ik op de hoofdlayout (Dossiers) een portal aan voor de verst verwijderde occurence ('omgekeerde verbanden'). En wanneer ik in de portaalrij een veld invul wordt er automatisch (en noodgedwongen) ook een record aangemaakt in de middelste tabel ('verbanden'). Zonder scripts of events en een bidirectionele link tussen twee records van een eenzelfde tabel. Quote Link to comment
Question
TheMisfit
Via een selfjoin en een portaal geef ik op dat bepaalde records (dossiers) met elkaar te maken hebben.
Dit werkt echter maar in 1 richting.
dossier B wordt gekoppeld aan dossier A, maar ik zou graag hebben dat het omgekeerde dan ook automatisch waar was (en dat zonder te scripten).
Iemand een idee?
Link to comment
11 answers to this question
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.