Erik Moeller wrote:
1) You'll need some capability for banning signed
in users.
What's the point? They'd just log out.
Having bans expire after a while would be nice, too.
OK, how about this:
CREATE TABLE bans (
userid int unsigned NULL,
iprange char(13) NULL,
bannerid int unsigned NOT NULL,
reason varchar(255) NOT NULL,
timestamp datetime NOT NULL,
expires datetime NULL,
PRIMARY KEY (userid, iprange)
);
The idea here is that in each row, either userid or iprange is NULL (but
not both). Banning a single IP is possible because anonymous edits
generate pseudo-accounts and thus a userid.
As you can see, I have also added 'expires'.
2) New message notification needs to work for all
users, not just signed
in ones. In Phase III we use a table that stores IP addresses of users who
have new messages.
Yes, and in my model, IP addresses that have ever edited something have
a userid.
3) Currently talk pages and normal pages are
"bundled" when watching: You
watch one, you also watch the other. You remove one, you remove the other.
This behavior should not change.
There's nothing wrong with adding (and removing) two rows each time you
watch/unwatch something.
4) While you're at it, you may want to think about
a better access rights
system than simple sysop/non-sysop. ACLs would probably work best.
Hm. I'm not very familiar with the concept of ACLs (Access Control
Lists, I assume). What in particular can they do that userprops cannot?
As for the userprops, having a langid column seems to
make the most sense.
OK.
Thanks,
Timwi