Ga naar inhoud
  • 0

relationele database


willem67

Vraag

Goedemorgen,

 

Ik heb relatief weinig ervaring met het bouwen van relationele databases. Als invoerder heb ik dat wel. Ik heb wel alle handleidingen en zelfstudie-oefeningen uitgevoerd. Die voorbeelden zijn echter net anders dan mijn wensen.

 

Ik wil een eenvoudige database met namen van kunstwerken (+/- 4000 records) en de tentoonstellingen (+/- 500 records) waar deze tentoongesteld zijn geweest. Ik ben van mening dat ik twee tabellen moet maken. Eén met de namen van de kunstwerken en één met de namen van de tentoonstellingen.

 

In de tabel van de kunstwerken wil ik ook namen van relevante tentoonstellingen kunnen invoeren of selecteren. Tegelijkertijd wil ik dat de naam van het kunstwerk wordt gespiegeld in het record van de bewuste tentoonstelling. Het lijkt er op dat ik twee portalen moet hebben die met elkaar communiceren, maar die niet identiek zijn. Niet ieder schilderij was in iedere tentoonstelling.

 

Als vergelijkingsveld kan ik de naam van de tentoonstelling nemen. Maar die moet dan exact gespeld zijn. Met een invoerlijst, gebaseerd op het gerelateerde veld in de andere tabel zou dat kunnen. Maar als ik de naam van de tentoonstelling later wijzig, bijv. een spelfout, dan wordt de de invoer in de tabel van de kunstwerken niet gewijzigd. en dan is de spiegeling verbroken.

 

Kan iemand mij helpen? Klopt mijn logica?

 

met groet, Willem

Link naar reactie

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Je redenering lijkt mij volstrekt logisch.

Ik denk dat je probleem wel gemakkelijk op te lossen is.

 

Als je je tentoonstellingen een uniek nummer geef, kun je zo op basis van dit nummer relationeren en de naam corrigeren als nodig zonder dat dit verder invloed heeft op je relatie.

 

 

Vr. groet

Harry

Link naar reactie
  • 0

Aangezien elk kunstwerk op meerdere tentoonstellingen te zien is en elke tentoonstelling meerdere kunstwerken laat zien ben je aangewezen op een tussentabel. Geef elk kunstwerk een uniek ID_kunstwerk en elke tentoonstelling een uniek ID_tentoonstelling en maak een tussentabel met ID_tentoonstelling en ID_kunstwerk. Koppel de twee tabellen met de tussentabel en niet direct met elkaar. Maak een portaal in tentoonstelling en/of kunstwerk met de tussentabel en zorg dat je hier records kunt aanmaken. Je kunt eventueel nog extra velden die specifiek gelden voor de betreffende tentoonstelling op de tussentabel zetten. Denk bijvoorbeeld aan de locatie van het kunstwerk.

Link naar reactie
  • 0

Beste Ari,

 

Tussentabellen dus! Dat begrijp ik op zich wel. (Je bedoelt toch echte nieuwe tabel en geen kopie-tabel in de grafiek?)

 

Maar hoe hoe ga ik de velden van de ID's in de tussentabel vullen met dezelfde gegevens van de ID's in de overige twee 'normale' tabellen? Moet dat handmatig (met de kans op fouten) of gaat dat anders.

 

Trouwens: ik kan in de officiële documentatie van Filemaker niets teruglezen over tussentabellen (oftewel many-to-many relations). Mijn wensen zijn toch niet zo extreem? Kan ik het ergens nalezen?

 

Willem

Link naar reactie
  • 0

Ik heb jullie advies uitgevoerd en het werkt uitstekend. Mede dankzij de bijdragen over tussentabellen van murtje op wo, 29 aug 2007 21:45. Vooral zijn voorbeeld file is goed om mee te oefenen.

 

Ik begreep aanvankelijk niet hoe de tussentabel werd gevuld met data; maar dat doen de portalen dus eigenlijk (indien het maken van records is aangevinkt).

 

Voorlopig kan ik verder met bouwen.

 

Veel dank!

Willem

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...