Toon posts:

[Access] Cascade deleten bij veel-op-veel relaties

Pagina: 1
Acties:
  • 141 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hi,

Voor de Access freaks:

Ik heb een veel-op-veel relatie tussen twee tabellen. Om deze in Access te realiseren heb ik gebruik gemaakt van een koppeltabel. Als ik nu in de ene tabel een tupel weggooi, wordt deze inderdaad cascade gedelete uit de koppeltabel maar niet uit te tabel waar deze koppeltabel dus aankoppelt. Beide relaties vanaf de koppeltabbel hebben zowel cascade update als cascade delete aanstaan. In de koppeltabel heb ik de twee foreign keys samen als primairy key.

Bvd

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 21:54
Na de cascade delete van je eerste tabel in je koppeltabel is het toch ook klaar? Want dan zit je aan de veel-kant van je relatie te verwijderen.

Of snap ik um niet, want ik weet ook niet wat tupel betekent.. :?

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Verwijderd

Topicstarter
dat zou je wel verwachten, maar dan delete Access gewoon de rij uit de koppeltabel en de rijen in de andere tabellen die aan de koppeltabel gerelateerd zijn blijven gewoon staan, en cascade delete is toch echt aan beide kanten aangevinkt.

Ow en een tupel is gewoon een rij

[ Voor 11% gewijzigd door Verwijderd op 08-04-2004 00:17 ]


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 21:54
In het woord "koppeltabel" en "twee foreign keys" lees ik dat koppeltabel alleen maar veel-kanten heeft van relaties.

Cascade delete werkt alleen maar als je aan de één-kant verwijdert.

Neem nu de constructie klant -> orders -> orderregels.
Je hebt de relaties:
  • klant (één) - (veel) orders
  • orders (één) - (veel) orderregels
Dan is het logisch dat als je een klant verwijdert, ook de orders met orderregels verwijderd worden. Door een verwijdering aan de één-kant worden de records aan de veel-kant ook verwijderd.


Ik neem aan dat jij de volgende (fictieve) constructie hebt:
klant - koppeltabel - artikelen
Met de relaties:
  • klant (één) - (veel) koppeltabel
  • artikel (één) - (veel) koppeltabel
En nu wil je bereiken dat als je een klant verwijdert, de regel in de koppeltabel ook verwijdert (dit lukt met deze constructie wel) maar ook het betreffende artikel?
Dat kan niet. Deze kan ook nog aan andere klanten gekoppeld zijn namelijk.

Wat je door aan allebei de kanten cascade delete aan te vinken wel bereikt is dat rijen uit de koppeltabel worden verwijderd als je of een klant of een artikel verwijdert.

Misschien dat je anders even een treffender voorbeeld kan geven, dan zijn wij ook in staat e.e.a. na te bouwen.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Verwijderd

Topicstarter
ja oke, wat ik eigenlijk wilde bereiken is dat als zeg maar de laatste klant uit de koppeltabel verwijderd wordt, het geralateerde artikel ook uit de artikeltabel gehaald wordt. Maar als ik het verhaal van je hierboven hoor lijkt het me inderdaad logisch en niet echt nodig om het artikel dan ook nog te verwijderen.

TnX!

[ Voor 30% gewijzigd door Verwijderd op 08-04-2004 11:02 ]