Mailinglisten-Archive |
> wo steht welche personen sich welche artikel wie oft angeschaut haben ? > gib mal ne genaue Aufstellung der relevanten Tabellen .... naja, das ganze hatte ich vor =FCber 1,5 jahren mal angefangen zu programmieren, dann aber aufgeh=F6rt f=FCr die site nochwas zu machen. da die beiden jetzigen programmierer wegen krankheit ausfallen (bei einem sogar bis zum fr=FChjahr) muss ich also wieder ran und meinen mist aufr=E4umen :) insgesamt gibt es eine tabelle namens personalize. dadrin sind folgende spalten enthalten: personalizeid, table, articleid, id die ganze site hat verschiedene table, z.b. cdreviews, dadrin hat jeder artikel (logisch) eine eindeutige id. wird nun z.b. cd-reviews 522 aufgerufen, so landet in der personalize-tabelle der eintrage (id), cdreviews, 522, (id) (werte in klammern sind erst einmal egal). table hatte ich damals als string angelegt, heute w=FCrde ich es vermutlich als enum deklarieren... ich habe also alle daten in einer gro=DFen tabelle. anhand der daten kann ich herausfinden welche benutzer welchen artikel aufgerufen haben. und ich kann herausfinden welche artikel von welchem benutzer aufgerufen wurden. anhand dieser relationen l=E4sst sich, theoretisch, so eine related-article-liste erzeugen, wie amazon.de dies bei b=FCchern macht. im ersten schritt muss ich nun herausfinden, welche anderen benutzer den aktuell ausgew=E4hlten artikel aufgerufen haben. das w=E4re select 1. nachdem ich diese benutzer habe muss ich nun nur noch die =FCbersicht =FCber die artikel kriegen, die diese benutzer sich ebenfalls angeschaut haben und davon eine top10 oder top20 erstellen, wobei geschaut wird, welche artikel bei diesen benutzern am h=E4ufigsten auftauchen. momentan (wie gesagt ist der code schon etwas =E4lter) sind dies zwei selects: 1. andere benutzer herausfinden 2. artikel herausfinden, die diese benutzer angeschaut haben 3. h=E4ufigkeitsanalyse per php und ausgabe der top10 (dies kann sicher ebenfalls die datenbank selber machen, obwohl ich damals zu keinem wirklich brauchbarem ergebnis gekommen bin) am liebsten h=E4tte ich dies in einem select. es wird mit 750000 bis 1 million datens=E4tzen gearbeitet, weshalb die wege m=F6glichst kurz sein sollten. sp=E4ter wird die top10-ausgabe separat gespeichert und nur alle paar tage aktualisiert, um die geschwindigkeit zu dr=FCcken, allerdings darf dieses skript nat=FCrlich ebenfalls nicht 3 sekunden pro artikel ben=F6tigen, wie es momentan der fall ist...
php::bar PHP Wiki - Listenarchive