The short answer is: the one you feel comfortable with.
The long answer is that every convension has it's advantages and disadvangtages and both are usually valid points.
For example; I have allways used plural form for table names, because a table holds a collection of data from which the query will make a subselection. There is nothing singular about the entire thing. Arguments against this include that it is sometimes difficult to predict the plural form of a table. That's sort of a valid point, if you have to guess the names of your tables, but I tend to know the names of the tables, I don't guess them.
Similarly some people like to name their foreign key fields after the tables and fields that are involved. Personally I prefer to name the foreign key field after the role it plays in the model, because that is the information I need when I'm working with the field. if a field contains the id of a person who is the teacher for the current record's user, I name the field "teacher_id". That makes sense to me. I already know that teachers are stored in the teachers view, I don't need to put that information in every field that refers to the teachers view.
And these kinds of arguments can be given for every rule of every convention.
So, when you speak to someone who says that his method is the best, he means "I like this". And that is all it means. Listen to the reasoning andremember the things that make sense to you and that help you to write better code.