Dans notre dev groupe, nous avons un débat qui fait rage au sujet de la convention d'affectation de noms pour les Clés Primaires et Étrangères. Il n'y a fondamentalement deux écoles de pensée au sein de notre groupe:
1:
Primary Table (Employee)
Primary Key is called ID
Foreign table (Event)
Foreign key is called EmployeeID
ou
2:
Primary Table (Employee)
Primary Key is called EmployeeID
Foreign table (Event)
Foreign key is called EmployeeID
Je préfère ne pas répéter le nom de la table dans l'une des colonnes (Donc je préfère l'option 1 ci-dessus). Sur le plan conceptuel, il est compatible avec un grand nombre de pratiques recommandées dans d'autres langues, où vous n'utilisez pas le nom de l'objet dans ses noms de propriété. Je pense que la mention de la clé étrangère Employé (ou Employee_ID peut-être mieux) indique au lecteur qu'il est la colonne ID de la Table Employee.
Certains d'autres préfèrent l'option 2 où vous le nom de la clé primaire préfixés par le nom de la table, de sorte que le nom de la colonne est la même tout au long de la base de données. Je vois ce point, mais vous ne pouvez pas distinguer une clé primaire d'une clé étrangère.
Aussi, je pense que c'est redondant d'avoir le nom de la table dans la colonne nom, parce que si vous pensez de la table comme une entité et d'une colonne comme une propriété ou un attribut de l'entité, pensez-vous que l'attribut ID de l'Employé, et non l'attribut d'Employé d'un employé. Je ne vais pas faire une demande à mon collègue que son Personnage ou PersonGender est. Je lui demande ce que son Âge.
Donc, comme je l'ai dit, c'est un débat qui fait rage et nous allons sur et sur et sur ce sujet. Je suis intéressé à obtenir de nouvelles perspectives.