What is a standard naming scheme to use for foreign key constraints?
Given these tables
task (id, userid, title)
note (id, taskid, userid, note);
user (id, name)
where Tasks have Notes, Tasks are owned by Users, and Users author Notes:
How would the three foreign key constriants be named?
Does it matter?
The standard convention in SQL Server is:
FK_ForeignKeyTable_PrimaryKeyTable
So, for example, the key between notes and tasks would be:
FK_note_task
And the key between tasks and users would be:
FK_task_user
This gives you an 'at a glance' view of which tables are involved in the key, so it makes it easy to see which tables a particular one (the first one named) depends on (the second one named). In this scenario the complete set of keys would be:
FK_task_user
FK_note_task
FK_note_user
So you can see that tasks depend on users, and notes depend on both tasks and users.