This is not to be argumentative; simply for discussion.
I can honestly say that my many years experience has been fraught with decisions on 'naming conventions'.
Can I ask why you prefix every field name with a table name acronym?
What is the point?
E.g. When creating SQL - you MUST know the table that the field is coming from, because it is declared in your FROM clause.
You ALWAYS know the context of the field, therefore - there is no need to include it in the field name.
If you think a little deeper - I have many applications, I sometimes copy whole table structures across these applications.
That being the case - why haven't you prefixed every table name (and thus every field) with an acronym for the application?
After all:
The application is a container for tables, just as the table is a container for fields.
Neither do I ensure that the pk field name is prefixed with the table name acronym: I call ALL autonumber primary keys 'PK', that is because - by it's context (it's in a table) - I ALWAYS know which table it is PK for.
What I DO do, is name every foreign key field (in other related tables) with the related pk field table name (because, there is NO WAY of knowing which table.pk it is referring-to - unless it has the table name in it's name).
E.g. 'volunteer_fk' which links to the 'pk' field in tblVolunteer.
This ensures that the viewer is aware that this foreign key links to the PK field in tblVolunteer.
I also name tables in singular fashion (as it is a definition of ONE object). It MAY contain zero, 1 or many records, therefore making it's name plural isn't really accurate. A table name is based on a single DEFINITION of a single object - not an indication of many records.
Also, in SQL, an alias can be used to rename field references that are identical (such as PK in my case). THIS, is where I'd prefix the table name to the PK field to ensure that there is no ambiguity - that is why aliasing was enabled:
E.g.
Code:
SELECT v.pk AS volunteer_pk,
s.pk AS skill_pk,
p.pk AS project_pk
FROM tblVolunteer AS v,
tblSkill AS s,
tblProject AS p
WHERE ... ;
Again, I'm not 'picking' - merely 'discussing'.
(It'd be great for us all in this forum to define a 'standard' on naming conventions don't you think? There simply isn't one out there atm).
ATB,
Darrylle
Never argue with an idiot, he'll bring you down to his level - then beat you with experience.