[MySQL] Databasestructuur van gerelateerde artikelen

Pagina: 1
Acties:

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Hoe kan mijn database structuur er het beste uitzien als ik straks onder een nieuwsbericht ook de headlines van gerelateerde artikelen wil plaatsen. Ik heb bijvoorbeeld de volgende tabel:

Nieuws
- ID
- Titel
- Bericht
- DatumToegevoegd
- DatumGewijzigd
- GID (gebruikersid)
- CID (categorieid)

Nu wil ik bijvoorbeeld dat ik 3 nieuwsberichten uit een bepaalde categorie aan elkaar koppel. Hoe kan ik dit het beste doen. Moet ik dan een extra tabel maken die bijhoudt welke nieuwsberichten bij elkaar horen of?

Ik wil dus niet alle berichten uit een categorie hebben, maar alleen diegene die ik aan elkaar koppel.

Hoe kan mijn database er het beste uitzien en hoe kan ik in een cms dit het beste onderbrengen?

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-04 12:54

Jaspertje

Max & Milo.. lief

Wil je nummer 1 aan nummer 2 koppelen en nummer 2 aan nummer 3 of wil je numme 1 koppelen aan nummer 2 en nummer 3 en nummer 2 aan nummer 1 en nummer 3

Zit er alsnog een hirarchie in je kopelling, kan 1 bericht aan meerdere nummers gekoppeld zijn of altijd maar aan 1 ander nummer

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Wanneer je een variabel aantal gerelateerde artikelen wil hebben is een koppeltabel, zoals je voorstelt, de beste oplossing. Wanneer het altijd 3 artikelen zouden zijn, niet meer en niet minder, dan kun je overwegen om 3 extra kolommen in je artikeltabel op te nemen en daarmee een klein beetje te winnen in de performance. Ik gok echter dat die koppeltabel het beste idee zal zijn. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Het mogen een variabel aantal berichten zijn, dus niet perse drie. Ik lees hier een koppel tabel, hoe moet ik me dat voorstellen, recursief?

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-04 12:54

Jaspertje

Max & Milo.. lief

ID int (1)
ID int (2)

Waarbij ID(1) niet hetzelfde moet zijn als ID(2) Daarbij is ID(1) het huidige nieuwsbericht en ID(2) een gerelateerd ID

Dus je krijgt iets als:

NieuwsID | GekoppeldID
1 | 2 (Bericht 2 is gekoppeld aan bericht 1)
1 | 3 (Bericht 3 is gekoppeld aan bericht 1)
1 | 4 enz...
3 | 4
2 | 5

[ Voor 40% gewijzigd door Jaspertje op 26-07-2005 15:29 ]


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Maar 3 is ook gekoppeld aan 1 dus... du krijg je ook iets van 3|1 ...

Alle mogelijke relaties worden dus in een aparte tabel gezet...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Klopt, dat is het hele idee van een koppeltabel (ook wel kruistabel genoemd). :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Maar als er een nieuw nieuwsbericht bij komt bij de groep, moeten alle relaties opnieuw geupdate worden, is dat niet een beetje omslachtig en kan dat niet makkelijker...

Het idee van alle relaties opslana had ik al wel, maar misschien dacht ik dat het wat makkelijker kan, zoals zoveel dingen waar ik aan begin en er later pas achter kom dat het makkelijker kan.. dus vandaar dat ik het ook vroeg...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoe bedoel je? Als er een nieuw nieuwsbericht komt, moeten alle gerelateerde berichten en de gerelateerde berichten daar weer van dat nieuwe bericht dan opnemen als gerelateerd bericht? Of begrijp ik je verkeerd?

Je zal sowieso vast zitten aan veel geupdate in je tabel. Je database kan niet voor je bepalen wat waaraan gerelateerd is, dat moet je zelf vertellen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Hmm ik vroeg me af hoe ze dat bij NU.nl doen. Maar dat zal wel ook zoiets zijn dan, immers als ze het bij tweakers zeggen is het vaak ook zo :-)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Euh, wat ik zeg is niet per definitie de waarheid hoor. Er zijn altijd meerdere wegen die naar Rome leiden. :) Ik zeg alleen dat ik het persoonlijk vanwege de onderhoudbaarheid zo op zou lossen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Kun je niet beter een extra veld voor keywords maken, en aan elk bericht wat keywords toevoegen waaraan het te herkennen is? Dan kun je de gerelateerde berichten heel makkelijk vinden door op dezelfde keywords te zoeken.

  • MrBrown
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2025

MrBrown

Reservoir Dog

Verwijderd schreef op dinsdag 26 juli 2005 @ 22:12:
Kun je niet beter een extra veld voor keywords maken, en aan elk bericht wat keywords toevoegen waaraan het te herkennen is? Dan kun je de gerelateerde berichten heel makkelijk vinden door op dezelfde keywords te zoeken.
Is inderdaad een hele goede mogelijkheid. Probleem hierbij is vaak wel het definieren van de keywords (is nog lastiger dan gedacht). Te vagen keywords leiden ertoe dat alle artikelen aan elkaar gerelateerd worden, te strakke keywords dat er haast geen relaties komen. Maar als je die stap goed maakt zijn keywords wel een mooie oplossing, zeker als aantal artikelen wat groter wordt.

Overigens schrijf jij "een extra veld", maar ik denk dat je de keywords beter appart in een tabel kan zetten en een koppeltabel (istie weer) tussen de artikelen en de keywords kan zetten. Dan kan je gerelateerde artikelen er makkelijker met een query uithalen.

[ Voor 16% gewijzigd door MrBrown op 27-07-2005 23:30 ]

Powered by Manetti (compiled by Jura)

Pagina: 1