Toon posts:

[DATABASE/Alg] Vraag over n:m relaties

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hi,

Even de volgende vraagstelling, stel ik heb 3 tabellen waar n:m relaties tussen bestaan:


Nu kan ik 1/ kiezen voor:

Afbeeldingslocatie: http://www.screwhog.com/bo-oz/Drawing1.jpg

of voor 2/:

Afbeeldingslocatie: http://www.screwhog.com/bo-oz/Drawing2.jpg

Met als substantieel verschil, het koppelen van een n:m relatie op de koppeltabel van een andere n:m relatie. Hierdoor zou in principe tevens de 1:n relatie tussen school en stad redundant worden.

Het lijkt een aardige oplossing de tweede, alleen hierdoor heb je wel weer een aantal rare dingen... Zit hier nu al een tijdje op te dubben wat de beste manier is... de tweede lijkt me vrij onnatuurlijk op een of andere manier... maar lijkt doeltreffender dan de eerste.

Heb al wat lopen googlen etc. maar zou niet weten hoe dit te benoemen, verder kom ik in mn zoektocht niet verder dan wat standaard normalisatie uitleg e.d.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Tja, alles hangt af van de context, van wat je precies moet kunnen.

Wat is de tabel 'cat' ? Wat zit daarin ? 'Categoriën' ? En hoe is 'cat' gerelateerd tot stad ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Zal wat meer toelichting geven...

Een stad kan meerdere categorieen hebben, categorieen behoren tot meerdere steden (n:m, stad_cat is koppel)

Een stad kan meerdere scholen hebben, echter een school maar in 1 stad voorkomen (1:n, directe relatie)

Een school behoort tot een of meerdere categorieen, categorieen bevatten meerdere scholen.

Omdat de stad/categorie relatie al is gelegd onderling, dacht ik, het zou dan handig kunnen zijn om de koppeltabel als referentie te gebruiken in de koppeltabel tussen (categorie/stad) en School.

Waarom dit namelijk aan de orde is --> Ik gebruik voor deze programmatuur een framework (CakePHP) en het koppelen van de koppeltabel heeft als voordeel dat hierdoor de integriteit kan worden afgedwongen... als een categorie namelijk niet meer bestaat in een stad, wil ik niet dat er nog scholen in voorkomen die betrekking hebben op die stad.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Behoort een school, die in een bepaalde stad ligt, ook direct tot alle categoriën die aan die stad gekoppeld zijn ?
Of, kan het zijn dat een school slechts tot één, of enkele categoriën behoort, die gekoppeld zijn aan de stad waartoe die school behoort ?

Kan het zijn dat een school aan een categorie gekoppeld wordt, die niet gekoppeld is aan de stad waarin die school zich bevind ?

[ Voor 54% gewijzigd door whoami op 09-07-2007 14:49 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op maandag 09 juli 2007 @ 14:48:
Behoort een school, die in een bepaalde stad ligt, ook direct tot alle categoriën die aan die stad gekoppeld zijn ?
Nee, hij hoeft niet tot alle cats te behoren in die stad, 1 of meer
whoami schreef op maandag 09 juli 2007 @ 14:48:
Of, kan het zijn dat een school slechts tot één, of enkele categoriën behoort, die gekoppeld zijn aan de stad waartoe die school behoort ?
Ja dat klopt, minimaal 1, maximaal allen
whoami schreef op maandag 09 juli 2007 @ 14:48:
Kan het zijn dat een school aan een categorie gekoppeld wordt, die niet gekoppeld is aan de stad waarin die school zich bevind ?
Nee dat zou dus niet mogelijk moeten zijn

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 24-11 23:24

BikkelZ

CMD+Z

Ik krijg zelf het gevoel dat de categorieen van een stad afgedwongen worden door de scholen die er in liggen, en dat de TS de denkfout maakt dat een stad een bepaalde categorie heeft terwijl het de scholen zijn die er in liggen die bepalen op welke categorieen die steden scoren. Als dit het geval is dan achterhaal je de categorie van een stad door een stad -> school -> cat te joinen.

-------

Aha, ja dus.

Dan achterhaal je dus de stadscategorieen door via je scholen te joinen. Ik weet niet of cake daar moeilijk over doet?

[ Voor 16% gewijzigd door BikkelZ op 09-07-2007 15:10 ]

iOS developer


Verwijderd

Topicstarter
@BikkelZ, nee volgens mij moet dat wel lukken... alleen lijkt het me dat ik om dit goed te doen... de stad_id uit de school moet halen. Dan wordt een query om alle scholen uit een bepaalde plaats te krijgen wel onnodig complex, keerzijde, als ik hem er wel in laat staan moet ik moeilijker doen om de data consistent te houden.

edit: om het nog iets duidelijker te maken, bij een overzicht van een stad zou het zo dus best kunnen zijn dat de categorie Universiteiten geen scholen bevat, tegelijkertijd zou bijvoorbeeld bij stad X de categorie Y helemaal afwezig kunnen zijn. Daarom is er dus een "vrije" n:m tussen stad en categorie

[ Voor 32% gewijzigd door Verwijderd op 09-07-2007 15:15 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:32

Janoz

Moderator Devschuur®

!litemod

Ik heb een beetje hetzelfde idee als BikkelZ. Volgens mij is er helemaal geen directe koppeling tussen categorie en stad. Zeker omdat je het in je laatste post over een categorie hebt (Universiteit) die helemaal niks met stad te maken heeft.

Even tussendoor, maar hoe zit het met scholen met meerdere locaties? Denk aan inHolland.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1