Q:

Database Naming Conventions

This debate has been done to death here, and I particularly enjoyed reading this thread.  However, I just wanted to ask one particular question and that thread is now closed, so here it is.
I'm wondering what people's opinions are on column names.  The broad consensus seems to be to name the table's primary key in the format ID, e.g. CustomerID.  That's what I do.
But what about the other columns?  I tend to prefix every column name with the table name, e.g. CustomerFirstName, CustomerDOB, etc.  That feels comfortable to me, but seems uncommon.  Leaving off the table name bothers me for two reasons.  Firstly, I worry that, as the database gets very big, there will likely be columns in different tables with the same name and it might get difficult to differentiate them, especially when debugging, and secondly it bothers my OCD to have the first column (the primary key, usually) begin with the table name but the others not.
Are there any norms or principles that can help in choosing best naming rules?  One other thing, though.  In my convention of prefixing every column name with the table name there arises a problem - foreign key columns.  It makes no sense to have a column called CustomerStoreID to hold the StoreID foreign key, so I just call it StoreID.  But then that's breaking the convention, so is that proof that the convention was poor in the first place?  How do you name your foreign key columns?

A:

This is entirely the decision of the individual. Everyone tries to keep the name of the column which is easy to identify and which can easily be inferred.
As such there is no standard for the naming convention of the columns in database. Every individual keeps the name of the column which can be easily tracked and understood.
I am just taking an example:-
Lets say you have a Table named as Employee.
And in this table you have to store the information of the employees including there name and contact details.
So if you name the columns as Emp_First_name, Emp_Last_Name, Emp_PhoneNo, Emp_EmailAdreess. Then this is more readable and any person who will use your table in future will understand the columns without any explanantion.

prefixing every column name with the table name there arises a problem
  - foreign key columns.

I dont think so. As it is a common practice that if there is a foreign key on any column then you prefix that column with FK_XXXXX. So anyone can track that it is a foreign key
Similarly if you create a INDEX then people generally add a prefix IDX_XXXX to mark that this is the name of the index.

