Firstly read this.
1. Adding a prefix is a much better idea. Using a schema is fine also. A prefix will separate transaction tables from lookup/static data table. Grouping tables that work together is a better practice.
2.I’m 50/50 on this. Tables have many records, a plural wont hurt.
4.Unnecessary prefix should be avoided but necessary and useful ones should be kept,
5. There is more to it than this. Use Google and get some good advice.
6. Use bigInts please.
7. Um no. That wont happen. A big int is 8 bytes and your varChar can be smaller.
8. No question ever has a yes/no answer ever. You will always want a third choice so choose an int now and save time latter. Using an int means all choice fields are of the same type, not matter how many choices.
9. OK. We have a winner
10. This better performance is a myth but generally a good idea.
11. This does not belong in the list
12. Actually do this for the highly used tables to spread out IO.
13. Do this for all databases unless you have one you can lose.
14. If you add a constraint you will need an index.
15 or use dbknow.com (coming soon)
16. Google this, there is a lot more to it, choosing the order of fields in the index is crucial
17. Or save money if you do not need it.
18. The database will do this for you. Never mind carry on
19. Huh. This is not helpful or correct.