[DB] FK voor meerdere tabellen gebruiken?

Pagina: 1
Acties:

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Ben benieuwd of dit datamodel ‘mogelijk’ is of wordt afgeraden.

Het gaat om een website waarop gebruikers o.a. artikelen kunnen lezen, een thema kunnen kiezen (waar artikelen ondervallen) en kunnen zoeken. De artikelen, thema's en zoekopdrachten staan allemaal in een aparte tabel met een primary key.

Per gebruiker wil ik het traject door de site volgen; dus welke artikelen worden gelezen en waarop gezocht wordt. Voor iedere gebruiker wordt in een sessies-tabel o.a. de begin- en eindtijd opgeslagen.

Optie 1
Per ‘actie’ (artikel, zoekopdracht) een koppeltabel maken die bijv. een artikel aan een sessie en tijd koppelt. Overzichtelijk maar een nadeel is de explosie van tabellen wanneer het aantal acties groeit.

Optie 2
Een tabel met alle mogelijke acties (artikel, zoekopdracht etc.) en een 2e tabel die de sessie en actie koppelt.
id_session FK -- naar sessies
id_action FK -- naar acties
id FK -- naar diverse tabellen

Afhankelijk van de waarde van id_action wordt id dus aan een specifieke tabel gekoppeld. Geen nette oplossing maar wordt het helemaal afgeraden? Heeft iemand misschien een andere oplossing?

Developer Accused Of Unreadable Code Refuses To Comment


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik zie niet hoe je DB de referentiële integriteit zou moeten kunnen afdwingen als 'ie niet weet in welke tabel 'ie de FK zou moeten vinden :? Hoe had je dat gedacht? Als er een 17 in staat (noem eens wat), is dat dan artikel 17? product 17? gebruiker 17? whatever 17?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
als datamodel kan het wel... alleen denk ik niet dat je gebruik kunt maken van allerlei stoere ingebouwde functionaliteiten in je DB... maar als je alle bewerkingen met eigen gebouwde scripts uitvoert lijkt me dat geen probleem...

  • Icelus
  • Registratie: Januari 2004
  • Niet online
De integriteit is inderdaad niet te garanderen. Ik wil van een script gebruik maken die ‘weet’ welke tabellen bij een actie hoort. Weet iemand nog een 3e optie?

[ Voor 4% gewijzigd door Icelus op 04-05-2007 10:26 ]

Developer Accused Of Unreadable Code Refuses To Comment