I'm going to be the odd ball in the group. We name all of our tables using a convention. Each application, or group of applications of the same type get a two character prefix. For instance we have a project management application we built and its prefix is pj. then we have two characters to tell us what sort of file it is, because our logicals and indexes are first class citizens on the as/400, so our tables or physicals have pf (for physical file) and our indexes have ix and our logicals have lf. then we have three characters to name the table, so a users table is usr, our project requests table is req, etc. Then we have two numbers after it. All physicals are 00, primary key indexes are always 00 as well as unique logicals, and then each logical or index after the primary is 01,02,03 etc. So for instance, our project management users table is pjpfusr00, the primary key logical is pjlfusr00, and then we have pjlfusr01, pjlfusr02, etc.
But where that really gets helpful though is in the naming of the columns. Our columns are the two character prefix, the three character table name, and then you have five characters to actually name the field. So our username field in the users table is pjusruser. What makes this nice is if you are using a field, you automatically know what table it came from, and it makes joins much much easier. It seems like a lot of typing at first, but when all of your tables are 9 characters long and all of your columns are a max of 10 characters long, it really makes your sql a LOT easier to read and maintain.
This was mainly done for the rpg work done on the 400, but it lends itself well to web development too.