XF1.x Daten und Felder für likes

Helga78

Bekanntes Mitglied
Lizenzinhaber
Registriert
30. Jan. 2014
Beiträge
757
Punkte
68
Ich möchte aus likes likes und dislikes machen.
Gepeichert werden diese bisher
a) in news.likes (int) und news.like_users (blob mit uid und uname)
b) xf_liked_content

Man macht das wohl wegen der Stats für user (b) und zur Ausgabe, wem was gefällt (a)
Was ich von einem Blob halten soll, der nachher vlt. ein paar Hundert User_ids und suernamen beinhalten könnte - zumindest in der Theorie - weiß ich nicht.

Für meine dislikes könnte ich nun

a) news.likes benutzen als Gesamtzahl der likes und dislikes
b) news.like_users erweitern auf uid, uname, value (1|-1) oder (1|2); ersteres braucht dann 2 Zeichen, zweiteres müsste man nochmals umrechnen, wenn man die Summe haben will, wobei diese sowieso in ein weiteres indiziertes Feld muss, da ich wie bei Reddit danach sortieren lassen will.

Ich könnte stattdessen aber auch news.dislikes und news.dislike_users nehmen und vielleicht ist das völlig egal wie ich es mache, trotzdem bin ich neugierig, ob es da Argumente gibt, die ich nicht sehe. Also in kurz nochmal

a)
likes cnt likes+dislikes
like_user mit (uid,uname,value(1|-1)
like_value z.B. ( (likes-dislikes) / (likes+dislikes) ) + 1 was ein Ergebnis zwischen 2 und 0 ergibt.

oder

b)
likes
dislikes
like_users
dislike_users
like_value

Hat jemand einen Rat bzw. Argumente, warum ich a oder b wähle?


Und gibt es einen "besten Weg" um abzugleichen, ob

unserialized(like_user) mit uid und uname meine visitor.user_id enthält?

In einem Script wird da extra nochmals eine Query abgefeuert; ich lasse stattdessen das array derart durchlaufen, dass ich ein weiteres array sammler bekomme mit
user_idx1 = 1
user_idx2 = 1

und dann nur noch fragen muss

isset(sammler[$visitor[$user_id]] um anzuzeigen, ob man schon geliekt, dislikt hat.
 
Zurück
Oben