Verwijderd schreef op zaterdag 20 maart 2010 @ 17:21:
Bedankt allemaal voor de reacties, ik ben weer verder gekomen met jullie tips.
Allereerst ben ik de combinaties weer gaan gebruiken omdat jullie hadden gezegt dat de database dit met gemak aan moest kunnen! En meteen werd de website weer langzaam (Paar seconden wachten). Hierna heb ik de kolom ID verwijdert en de primairy key op product1 en product2 gezet! En raad eens: Super snel! Geen vertraging te merken. Verwonderlijk hoeveel dit verschil maakt. Dank jullie
Kijk eens aan, ik had al een vermoeden dat dat beter zal zijn.

Het voordeel om sessions te gebruiken om artikelen in te laten staan zie ik nog niet helemaal? Ik gebruik nu wel sessions om gebruikers met een dynamic ip op te sporen en zo dezelfde ID te laten houden. De artikelen die hij bekijkt worden nog steeds in de database opgeslagen met zijn session id. Door middel van een cronjob worden alle records geleegd die ouder zijn dan X dagen. Hiermee worden artikelen die de bezoeker nu nog bekijkt niet meer gekoppeld aan artikelen die hij X dagen eerder bekeek.
Als ik in een webshop zit waar ik veel artikelen bekijk, is de kans groot dat het eerste product dat ik bekijk, niks te maken heeft met het 30e product. Maar ik denk dat het uiteindelijk niet zo heel veel uit maakt, maar ik weet niet of het handig is om bij elke keer dat een artikel geopend wordt ineens 100 queries uit te voeren.

Al helemaal verdeeld over meerdere dagen zou ik niet doen, ik zou het in ieder geval laten bij de artikelen die hij in een huidige sessie bekijkt. Het is namelijk imho niet goed om aan te nemen dat een artikel, dat iemand een paar dagen geleden bekeken heeft, te maken heeft met een artikel die hij dagen erna bekijkt.

Hiervoor gebruik ik nu 3 maanden om eerst zo veel mogelijk data te generegen. Als ik klaar ben leeg ik de database toch eerst en zal ik denk ik kiezen voor 1 maand? Hebben jullie suggesties over een bewaartijd? En waarom dan zo lang/kort?
Zolang je er voor zorgt dat de rijen verwijderd worden zodra het gekoppelde artikel verwijderd wordt (mbv FK's), zie ik niet zo heel veel reden om data te gaan verwijderen, dan moet je elke keer weer opnieuw alle data verzamelen. Volgens mij wordt de data alleen maar "betrouwbaarder" naar mate je het script langer hebt draaien, maar ik kan het mis hebben hoor, heb nog geen ervaring met dergelijke zaken.

Ik vraag mij trouwens af of ik de titel en beschrijving wel moet meenemen in een ranking. Het lijkt mij juist beter om dit niet te doen om zo onverwachte combinaties te krijgen. Bijvoorbeeld: Als jij een autoradio koopt wil je er misschien ook boxen bij. Er zullen weinig woorden overeenkomen tussen deze artikelen maar ze hebben veel met elkaar te maken. Dit voorbeeld is wel duidelijk, maar het is juist leuk om onverwachte combinaties naar voren te laten komen. Om gebruikers iets te laten zien waar ze zelf misschien nog niet aan hebben gedacht.
Ik verwacht dat je dat voor zoekmachines bedoelt. Ten eerste betwijfel ik of het echt iets is waar mee je in de zoekmachines gaat scoren. Als dat het geval is, dan zal het waarschijnlijk wel goed gaan komen als je de naam van het product terug laat komen (niet te vaak).

@GuidoH: wacht dan even tot ik hiermee klaar ben, dan kan je de code krijgen

Bedankt voor het aanbod, maar ik moet hem afslaan.