Moderation, not IF but HOW
I've been thinking about moderation lately. Not if it should be done, that's Scotts decision. But how one could be implemented. I think, it might be a good idea to think about one, discuss it's pros and cons and design one we can all feel happy about. (Partly in response to reply #16 in 18051.) Oke, my proposal. (Assuming the articles linked below reflect the true core of the forums.) On the usertable (t_user) a new field, u_modPoints, a positive integer. t_user.u_modPoints integer Null This field depicts the weight of that users opinion. (The Null is for backward compatibility, not every existing user has to be set) Null, or 0 (zero) means none. The user can't moderate. 1 (or more) means that user can. Scott can decide which users opinion gets which weight. This can range from all users at 1, meaning everyone can moderate. To most users at 0, some trusted ones at 1, and possibly a happy few at higher weights. Scotts opinion obviously has a weight of several million. Users should not be able to see each others weight, as it is in fact a level of trust in that user. First a note on the t_topics table. There is really no difference between threads and replies to threads. Threads have a topic_parent value of -1 (or, no parent and thus a thread) Replies have a value corresponding to the topic_id of the threads they are children off. (I'll use topic where both thread and reply are applicable.) On the topics table we add topic_modPoints, an integer. t_topics.topic_modPoints integer Null This field represent what the moderators think of this topic. A value null means "has not been moderated (yet)". The value 0 means it has been moderated, but the current feeling is neutral. Negative values reflect a disapprovement by the moderators. Replies with values below a certain threshold, lets say -5, are hidden from normal view. Similar to those by banned users. (#10 in this thread) Threads with values below the threshold will not be shown on the frontpage (possibly not on other listings either, maybe after a second more severe threshold?) and tagged for review. (in other words, will be listed on an admin-type "what are my moderators up to today" page.) This field is not really needed as its value can be retrieved from the t_mod table (see below) But it will speed up queries if set here. It also allows for maintenance, if we add a timestamp field to the t_mod table we can delete "old" records after a few months to decrease the table size. A new table, t_mod. To track who did what to whom. t_mod.u_id int not null t_mod.topic_id int not null t_mod.mod_modPoints int not null #t_mod.mod_ts datetime not null Moderators can award their modPoints in the range minus u_modPoints..0..plus u_modPoints. (Negative reflects disapprovement/disagreemnet) The value mod_modPoints can never be set greater than that users u_modpoints value. There should be only one record for each user/topic pair. (That would be the primary key to the table then) Later alterations to u_modPoints only affects that users future possibilities. Meaning that if a user downgraded by Scott, goes back to reconsider his/her opinion the possibilities will reflect the then current maximum u_modPoints available to him/her. If the user was at level 5 and is downgraded to 3, the range will be -3..3 instead of the former -5..5 Yes, this means that if a user is upgraded a reconsideration will give him/her a larger range and the option to do more damage. A page where users can enter the number of the topic (thread or reply) and see what the current moderation on that topic is and, if applicable, their maximum in modpoints and a select box (filled in correspondence to their range, defaulted to their previous opinion or 0 if no previous opinion was found) to award points. If (re)set to 0 the record should be stricken from the t_mod table. In other words, we're not interested in what you used to think about it. Some remaining questions. Started By BachusII on Oct 18, 2005 at 4:07:19 AM This message has been edited. |