This is strictly for SQL Server
for every "serious" data table, there must be a well-chosen clustering index. A good clustering index is narrow, unique, static (never changes) and ideally ever-increasing - an
INT IDENTITY
is as close to perfect as it can beFor any column that is a foreign key, create a nonclustered index. This helps JOINs and other operations and is a generally accepted best practice
Don't OVER-INDEX! - too many indices can be worse than none!
Let your system run for a while, observe how it performs, identify potential performance bottlenecks
if you have identified some performance issues, generate a representative workload (not just a single query; by using server-side tracing) and try to optimize that by using e.g. the Data Tuning Advisor (but don't blindly adopt everything the DTA says!)
Implement one index at a time - observe your system again - did the performance (real or perceived) improve? If so: leave the index - if not: remove it again
Which indexes exactly to use - that's a bit of a black art based on a lot of know-how, experimentation, experience - you really can't give clear, black-or-white kind of ideas here. Try something - observe its benefit (or negative impact) - learn from it. Repeat until your retirement :-)
There's really no 10-page checklist and once you know that, you're done. Either you learn these things yourself, over the years - or you hire someone who has that expertise - your choice. There's no "easy way" to mastering everything about indexing in 5 easy lessons.....