Antworten
EINE Möglichkeit wäre, alle Bilder anhand der IDs in Pakete aufzuteilen. Paket 1 hat Bilder von 1-100, Paket 2 von 101-200, usw. Jeder Nutzer bekommt immer ein Paket zugewiesen. Dabei kann man auch 3 Gruppen bilden. Gruppe eins bekommt von insgesamt 60 Paketen z.B. 1-20, Gruppe 2 bekommt 21-40 und Gruppe 3 bekommt 41-60. Ist ein Nutzer mit seinem Paket durch, wird er einer anderen Gruppe zugewiesen. So muss er nicht zweimal für ein Bild voten.
Man muss sich im Prinzip die letzte ID des Bildes merken, die ein Nutzer gevotet hat. So weiß man, ab wo man ihm beim nächsten Besuch die nächsten Bilder aus seinem Paket zeigen muss.
Gibt man jedem Paket eine eigene Tabelle, so können neue Bilder problemlos hinzugefügt werden, da IDs ja fortlaufende Nummern sind.
Erst wenn ein Nutzer die letzte ID eines Pakets gevotet hat, darf er das Paket wechseln. Wohlgmerkt zu einem Paket innerhalb seiner Gruppe. Hat er alle Pakete durch, wechselt er die Gruppe und dort wieder von Paket zu Paket.
Man muss sich auch die letzten Daten zu jedem Nutzer merken/speichern. Also welche ID in welchem Paket zuletzt von diesem Nutzer gevotet wurde. Denn wenn ein Nutzer alle Gruppen und damit auch alle Pakete durch hat, dann hat er ja eigentlich keine Bilder mehr zum voten. Deshalb kann man diesen Nutzer dann wieder seiner ersten Gruppe und seinem ersten Paket zuweisen und einfach ab der ID weiter voten lassen, wo er in diesem Paket aufgehört hat, weil es zu diesem Zeitpunkt keine weiteren Bilder mehr gab.
Hoffe das war verständlich. So ein Votingsystem ist nicht so einfach wie es nach außen hin scheint. Man muss einiges beachten.
Allerdings gibt es auch schwierigere Systeme, als dass man immer nur ein bild anzeigt und dieses bewerten lässt. Es gibt Vote Seiten, da werden immer 2 Bilder gezeigt und man muss sich für eins entscheiden. Hier sind weitaus mehr Faktoren zu beachten, obwohl es sich eigentlich noch simpler anhört.
2.
hm, sorry, aber verstanden hab ich es nicht. User sind doch zichtausende und manche haben Bilder und manche widerum nicht. Ist sowas ähnliches wie Kontaktanzeigen. Dort sollte ein User die Bilder bewerten von jemand anderen. Wenn er gevotet hat für das bild, dann sollte er gesperrt werden für dieses Bild.
Und dann sollte ausgerechnet werden wie im Durchschnitt gevotet wird. Die User haben doch alle eine UserID kann man nicht in der Datenbank festahlten welche user id für wen und welche Bildnummer gevotet hat?
3.
Die Tabelle könnte wie folgt aussehen:
ID
ID_Bild
ID_User
Bewertung
Jetzt kannst du immer abfragen, ob dieses Bild vom User schon bewertet wurde und du kannst für jedes Bild den Durschschnitt der Bewertung ausrechnen.
Natürlich würde auch noch ein Datum möglich sein, dann kannst das ganze auch noch Zeitlich eingrenzen
4.
Zitat:
wollenschlaeger postete
Die Tabelle könnte wie folgt aussehen:
ID
ID_Bild
ID_User
Bewertung
Jetzt kannst du immer abfragen, ob dieses Bild vom User schon bewertet wurde und du kannst für jedes Bild den Durschschnitt der Bewertung ausrechnen.
Natürlich würde auch noch ein Datum möglich sein, dann kannst das ganze auch noch Zeitlich eingrenzen
Hallo? Wieviel Datenmüll willst du denn speichern? So wie du das hier erklärst, müsstest du zu jedem User die BildIDs speichern, die er gevotet hat. Das allein kann schon eine Datenbank sprengen, wenn man eine große aktive community betreibt.
Aber dazu musst du dann auch noch vor jeder Bildanzeige prüfen, welches Bild für diesen Nutzer angezeigt werden darf. je größer die Liste an gevoteten Bildern eines Nutzers wird, desto länger dauert diese Überprüfung. Irgendwann frisst allein diese Überprüfung alle Ressourcen des Systems, weil ein Nutzer 1 Mio. Bilder gevotet hat die alle verglichen werden müssen.
5.
daher ja meine Frage, also ist es besser mit einer Textdatei oder? Chats laufen ja auch über Textdateien
6.
Textdatei? Was willst du darin speichern? Ich kann dir gerade nicht folgen.