Dit is een probleempje waar ik al een aantal keer tegenaan ben gelopen en waarbij ik eigenlijk op zoek ben naar een "best practice" oplossing. Ik probeer de situatie even te schetsen aan de hand van een (hopelijk duidelijk) voorbeeld.
Men maakt bijvoorbeeld een nieuws systeem, zoals iets wat t.net heeft. Nieuws is in verschillende categorieën van de website en er moet de mogelijkheid zijn om nieuws zichtbaar te hebben in meerdere categorieën van de website. Nu zou je dit dus in de front end simpel kunnen selecteren met een aantal checkboxes van waar het wel en niet weergeven moet worden. Maar hoe wil je dit in de back-end en het database design afhandelen.
Ik heb een aantal mogelijkheden bedacht en ik vroeg mij af wat de aangeraade manier is en vooral Waarom.
[list=1]
• Koppeltabel met het newsid en de categorie.
Voordelen:
[list]
• Robuust
• Makkelijk mogelijk toevoegen extra categorieën
• Snel in samenwerking met indexen
Nadelen:
[list]
• "groot"
• Een extra tabel met losse informatie
• Boolean Categorie velden in news tabel.
Voordelen:
[list]
• Erg simpel toepasbaar
• Geen joins nodig bij ophalen
Nadelen:
[list]
• Flawed by design (tabel verandering noodzakelijk voor extra categorieën)
• ?? eerste weegt genoeg om het eigenlijk geen optie te laten zijn
• Één Categorie veld in news tabel met (bijv) serialzed boolean velden.
Voordelen:
[list]
• Een veld nodig in nieuws tabel, geen extra joins
• Makkelijk mogelijk extra categorieën toevoegen
Nadelen:
Men maakt bijvoorbeeld een nieuws systeem, zoals iets wat t.net heeft. Nieuws is in verschillende categorieën van de website en er moet de mogelijkheid zijn om nieuws zichtbaar te hebben in meerdere categorieën van de website. Nu zou je dit dus in de front end simpel kunnen selecteren met een aantal checkboxes van waar het wel en niet weergeven moet worden. Maar hoe wil je dit in de back-end en het database design afhandelen.
Ik heb een aantal mogelijkheden bedacht en ik vroeg mij af wat de aangeraade manier is en vooral Waarom.
[list=1]
• Koppeltabel met het newsid en de categorie.
Voordelen:
[list]
• Robuust
• Makkelijk mogelijk toevoegen extra categorieën
• Snel in samenwerking met indexen
Nadelen:
[list]
• "groot"
• Een extra tabel met losse informatie
• Boolean Categorie velden in news tabel.
Voordelen:
[list]
• Erg simpel toepasbaar
• Geen joins nodig bij ophalen
Nadelen:
[list]
• Flawed by design (tabel verandering noodzakelijk voor extra categorieën)
• ?? eerste weegt genoeg om het eigenlijk geen optie te laten zijn
• Één Categorie veld in news tabel met (bijv) serialzed boolean velden.
Voordelen:
[list]
• Een veld nodig in nieuws tabel, geen extra joins
• Makkelijk mogelijk extra categorieën toevoegen
Nadelen:
- Extra logica nodig om de juiste waardes te selecteren
- Mogelijk noodzakelijk "te veel" velden op te halen en daaruit de juiste te selecteren
[ Voor 0% gewijzigd door BarthezZ op 11-04-2008 22:23 . Reden: Kleine topi fixes ]