Hoi Tweakers,
Ben bezig om oude code op te ruimen, waarmee ik op het volgende stuitte:
Het gaat in deze over een forum.
Hierbij is nu de volgende indeling te herkennen:
- ForumCategory
- Forum
- ForumThread
- ForumPost
Ieder met hun respectievelijke repository.
Om nu bijvoorbeeld de frontpage te renderen kan ik 2 kanten op:
- Ik voeg een extra relatie toe: ForumCategory krijgt ook een referentie naar alle Forum's waarin deze van toepassing is. Hierdoor zou ik elementair de frontpage kunnen renderen doordat alle info vrij eenvoudig op te halen valt.
- Ik voeg geen extra relatie toe, en de relatie forum -> category zorgt ervoor dat ik voor iedere category moet achter halen welke forums hierbij behoren.
Deze lijn is uiteraard verder door te trekken naar thread en post. Maar laten we even elementair beginnen ^_~
De vraag hierbij:
Is er hier een beste oplossing? En wanneer zou er een lichtje moeten gaan branden voor het opslaan van teveel cross-informatie. (cross-informatie bedoel ik dus het opslaan van beide richtingen). Dit neemt namelijk wel ruimte in beslag, en het bijwerken is natuurlijk ook niet gratis in de zin van resources.
---------------
Als 2e vraag heb ik het volgende:
Het is mogelijk om een post te up -of downvoten. Dit werkt en lukt allemaal prima, maar gezien er een op meerdere entiteiten gevote kan worden is het allicht handiger om dit systeem los te trekken.
Nu gebeurt dit simpelweg door voor iedere entiteit een aparte vote entiteit te maken (ForumthreadVote forumpostvote etc.) en deze op te slaan middels single table inheritance.
Nu heb ik letterlijk 15 minuten gespendeerd aan het onderzoeken van mongodb, maar dit lijkt een vrij goede kanditaat ervoor.
Zo is het dan mogelijk om een collectie te maken met votes. Hierbij worden deze onderscheiden door 'soort' waarin het entiteit type staat, en verder alle benodigde info om dit rond te maken. Een andere oplossing is om binnen mongodb weer een collectie aan te maken voor ieder soort entiteit al ontgaat mij dan het doel van het gebruiken van mongodb een beetje.
Ik hoop dat iemand wat antwoorden voor me heeft.
Ben bezig om oude code op te ruimen, waarmee ik op het volgende stuitte:
Het gaat in deze over een forum.
Hierbij is nu de volgende indeling te herkennen:
- ForumCategory
- Forum
- ForumThread
- ForumPost
Ieder met hun respectievelijke repository.
Om nu bijvoorbeeld de frontpage te renderen kan ik 2 kanten op:
- Ik voeg een extra relatie toe: ForumCategory krijgt ook een referentie naar alle Forum's waarin deze van toepassing is. Hierdoor zou ik elementair de frontpage kunnen renderen doordat alle info vrij eenvoudig op te halen valt.
- Ik voeg geen extra relatie toe, en de relatie forum -> category zorgt ervoor dat ik voor iedere category moet achter halen welke forums hierbij behoren.
Deze lijn is uiteraard verder door te trekken naar thread en post. Maar laten we even elementair beginnen ^_~
De vraag hierbij:
Is er hier een beste oplossing? En wanneer zou er een lichtje moeten gaan branden voor het opslaan van teveel cross-informatie. (cross-informatie bedoel ik dus het opslaan van beide richtingen). Dit neemt namelijk wel ruimte in beslag, en het bijwerken is natuurlijk ook niet gratis in de zin van resources.
---------------
Als 2e vraag heb ik het volgende:
Het is mogelijk om een post te up -of downvoten. Dit werkt en lukt allemaal prima, maar gezien er een op meerdere entiteiten gevote kan worden is het allicht handiger om dit systeem los te trekken.
Nu gebeurt dit simpelweg door voor iedere entiteit een aparte vote entiteit te maken (ForumthreadVote forumpostvote etc.) en deze op te slaan middels single table inheritance.
Nu heb ik letterlijk 15 minuten gespendeerd aan het onderzoeken van mongodb, maar dit lijkt een vrij goede kanditaat ervoor.
Zo is het dan mogelijk om een collectie te maken met votes. Hierbij worden deze onderscheiden door 'soort' waarin het entiteit type staat, en verder alle benodigde info om dit rond te maken. Een andere oplossing is om binnen mongodb weer een collectie aan te maken voor ieder soort entiteit al ontgaat mij dan het doel van het gebruiken van mongodb een beetje.
Ik hoop dat iemand wat antwoorden voor me heeft.