[DB] 2 koppel tabellen of 1

Pagina: 1
Acties:

  • bille
  • Registratie: Mei 2000
  • Laatst online: 06-05 18:25

bille

Don't call me Buff

Topicstarter
Ok situatie;

3 tabellen: student, memo en leraar
Bij iedere student kunnen 1 of meerdere memo's bestaan en iedere memo kan voor 1 of meerdere studenten bestaan (N-op-N)
Iedere memo mag door 1 of meerdere leraren bekeken worden en iedere leraar mag 1 of meerdere memo's zien (N-op-N).

Er kan gekozen worden om voor beide N-op-N relaties een koppel tabel te maken ([stud.ID,memo.ID] & [memo.ID,leraar.ID]) hetgeen naar mijn mening correct is. Een andere mogelijkheid is om 1 tabel te maken met 3 kolommen ([stud.ID,memo.ID,leraar.ID] met uniciteitsconstraint over alle drie).

Imho is voor beide aanpakken wel wat te zeggen. De laatste levert een minimale hoeveelheid aan searches op (helaas kunnen er geen joins gebruikt worden, ja dat is stom, maar helaas het is niet anders in Omnis). De eerste is imho volgens mij relationeel correct, maar van die tweede weet ik dat niet zeker. Als ik het beredeneer dan lijken beide oplossing gelijk aan elkaar, Ik kan iig niet ontdekken waar een van beide oplossingen redundante informatie gaat bevatten (afgezien van de standaard ID kolommen in de koppeltabellen dan ;))

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies


Verwijderd

De eerste is de enige juiste, zowel volgens de normalisatie regels als in de praktijk.
Je vergeet namelijk een extra regel en dat is dat 1 leraar 1 of meerdere studenten kan hebben en 1 student 1 of meerdere leraren kan hebben (N : M). In de tweede variant van jou, koppel je een leraar aan een student via een memo, wat mischien nu juist is maar in de toekomst zeker fout zal worden (op een enkele eeuwige student na).

  • bille
  • Registratie: Mei 2000
  • Laatst online: 06-05 18:25

bille

Don't call me Buff

Topicstarter
hmjah ik kon het nog even niet benoemen, maar je hebt tot op zekere hoogte gelijk.. Het gaat eigelijk ook niet over studenten, maar over patienten en memo's en wie de memo's mag zien :).

edit:
Excuus voor het wijzigen, moest ff denken voor ik de juiste gegevens neerzette

[ Voor 69% gewijzigd door bille op 02-12-2004 16:07 ]

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies


Verwijderd

Ik zou de situatie nog maar eens goed bekijken. Ik begrijp uit je verhaal dat een patient meerdere dossiers kan hebben, dan is dit imo de enige juiste oplossing:

[patient] --[koppeltabel]--[dossier]--[koppeltabel]--[arts]

Immers:

1) een patient kan meerdere dossiers hebben
2) een dossier kan meerdere patienten hebben (volgens omschrijving in TS)
3) een arts kan meerdere dossiers hebben
4) een dossier kan meerdere artsen hebben

Je hebt dus twee n:m relaties, oftewel 2 koppeltabellen.

Als de relatie tussen patient/dossier/arts uniek is, kun je overwegen om de tabel dossier zelf de koppeltabel te laten zijn.

[ Voor 19% gewijzigd door Verwijderd op 02-12-2004 16:06 ]