Ik ben op zoek naar een goede manier om een databae structuur op te zetten voor "Andere bezoekers bekeken ook" Zoals bijvoorbeeld amazon dat doet: http://www.amazon.com/Tus...2G1S0/ref=cm_cr_pr_sims_t .
Mijn eerste idee was een kruistabel van product x product, maar bij deze tabel moet je telkens rijen en kolommen toevoegen en ik weet niet of dat een groot probleem gaat zijn voor een database als je een tabel hebt van 2000x2000 (ook al select je hier uit natuurlijk alleen een top5 en alleen maar 1 kolom). Sowieso heb ik het idee dat je productie code het liefst alleen INSERT UPDATE en DELETE moet doen en niet ALTER maar waarschijnlijk heb ik het daar mis.
Ik heb even gegoogled op termen als "Database Structure other customers viewed" maar hier kwam niets nuttigs uit.
Nu vraag ik me dus af of een kruistabel een goed idee is maar met een datacomplexiteit van N^2 leek me dit toch niet de oplossingen.
Later kwam ik op het volgende idee dat een soort van "Landing" tabel is, waarin wordt opgeslagen
---PaginaID--VorigePaginaID--Count
Met een stored procedure wou ik dan een paginaID en vorigePaginaID toevoegen als deze combinatie nog niet in de database zit, en anders count ophogen.
Daarna zou ik een soort query kunnen lostlaten als "Select PaginaID from Landing where VorigePaginaID = myID Order By Count LIMIT 5" (Even snel uit het hoofd zullen wat foutjes in zitten).
Is dit een goede performante oplossing, het klinkt beter dan de kruistabel en de complexiteit is <=N^2 (alleen N^2 als alle pagina's direct na alle pagina's worden bezocht).
Dus ik vroeg me af landing tabel klinkt goed maar er zouden wat onvoorziene problemen mee kunnen komen die ik nu misschien nog niet zie, kruistabel klinkt slecht maar misschien is er toch iets voor te zeggen. Of zijn er nog andere opties?
Mijn eerste idee was een kruistabel van product x product, maar bij deze tabel moet je telkens rijen en kolommen toevoegen en ik weet niet of dat een groot probleem gaat zijn voor een database als je een tabel hebt van 2000x2000 (ook al select je hier uit natuurlijk alleen een top5 en alleen maar 1 kolom). Sowieso heb ik het idee dat je productie code het liefst alleen INSERT UPDATE en DELETE moet doen en niet ALTER maar waarschijnlijk heb ik het daar mis.
Ik heb even gegoogled op termen als "Database Structure other customers viewed" maar hier kwam niets nuttigs uit.
Nu vraag ik me dus af of een kruistabel een goed idee is maar met een datacomplexiteit van N^2 leek me dit toch niet de oplossingen.
Later kwam ik op het volgende idee dat een soort van "Landing" tabel is, waarin wordt opgeslagen
---PaginaID--VorigePaginaID--Count
Met een stored procedure wou ik dan een paginaID en vorigePaginaID toevoegen als deze combinatie nog niet in de database zit, en anders count ophogen.
Daarna zou ik een soort query kunnen lostlaten als "Select PaginaID from Landing where VorigePaginaID = myID Order By Count LIMIT 5" (Even snel uit het hoofd zullen wat foutjes in zitten).
Is dit een goede performante oplossing, het klinkt beter dan de kruistabel en de complexiteit is <=N^2 (alleen N^2 als alle pagina's direct na alle pagina's worden bezocht).
Dus ik vroeg me af landing tabel klinkt goed maar er zouden wat onvoorziene problemen mee kunnen komen die ik nu misschien nog niet zie, kruistabel klinkt slecht maar misschien is er toch iets voor te zeggen. Of zijn er nog andere opties?