Quelles sont les conventions de nommage plus lisibles pour les tables de search?

Nous nommons toujours les tables de search – telles que Pays, Villes, Régions … etc – comme ci-dessous:
EntityName_LK OR LK_EntityName (Counsortinges_LK ou LK_Counsortinges)
Mais je request si quelqu'un a mieux nommé les conversions pour les tables de search?

Editer :
Nous pensons faire un postfix ou un préfixe à résoudre comme un conflit:
si nous avons User tables User et une table de search pour UserTypes (ID-Name) et nous avons une relation many to many entre User & UserTypes qui nous font une table que nous pouvons nommer comme Types_For_User qui peut faire la confusion entre UserTypes & Types_For_User Donc nous aimons faire UserTypes table de search UserTypesLK être évident pour tous

Avant de décider que vous avez besoin du surnom "search", vous devez essayer de comprendre pourquoi vous définissez certaines tables comme des "searchs" et pas d'autres. Chaque table devrait représenter une entité en soi.

Que se passe-t-il lorsqu'une table désignée comme "search" prend de l'ampleur et n'est plus considérée comme une "search"? Vous pouvez soit changer le nom de la table qui peut être onéreux ou le laisser tel quel et devoir expliquer à tout le monde qu'une table donnée n'est pas vraiment une "search".

Un scénario commun mentionné dans les commentaires relatifs à une table de jonction. Par exemple, supposons qu'un Utilisateur peut avoir plusieurs "Types" qui sont exprimés dans une table de jonction avec deux foreign keys. Cette table doit-elle être appelée User_UserTypes ? Pour ce scénario, je dirais d'abord que je préfère utiliser le suffixe Member sur la table de jonction. Nous aurions donc Users , UserTypes , UserTypeMembers . Deuxièmement, le mot "type" dans ce context est assez générique. Est-ce qu'un UserType signifie vraiment un rôle? Le terme que vous utilisez peut faire toute la différence. Si les UserTypes sont vraiment des Rôles, alors nos noms de tables deviennent des Users , des Roles , des RoleMembers Roles , RoleMembers qui semble assez clair.

Chaque table peut devenir une table de search. Considérez qu'une personne est une search dans une table Facture. Donc, à mon avis, les tables devraient juste être nommées le nom d'entité (singulier), par exemple Personne, Facture.

Ce que vous voulez, c'est un standard pour les noms de colonnes et les contraintes, tels que

 FK_Invoice_Person (in table invoice, link to person) PersonID or Person_ID (column in table invoice, linking to entity Person) 

À la fin de la journée, tout dépend de vos preferences personnelles (si vous pouvez vous en dicter) ou des normes d'équipe.

actualisé

Si vous avez des searchs qui ne concernent que des entités, comme Invoice_Terms, qui est une search à partir d'une list de 4 scénarios, vous pouvez l'appeler Invoice_LK_Terms, ce qui le ferait apparaître par nom groupé sous Facture. Une autre méthode consiste à avoir une seule table de search pour les searchs simples à valeur unique, séparées par la fonction (table + colonne), par exemple

 Lookups Table | Column | Value 

Voici deux préoccupations concernant l'utilisation d'un préfixe ou d'un suffixe.

  1. Dans une list sortingée de tables, voulez-vous que les tables LK soient set ou voulez-vous que toutes les tables appartenant à EntityName apparaissent set

  2. Lorsque vous programmez dans des environnements avec auto-complétion, êtes-vous susceptible de vouloir taper "LK" pour get la list des tables ou le début de EntityName?

Je pense qu'il y a des arguments pour l'un ou l'autre, mais je choisirais de commencer par EntityName.

Il n'y a qu'un seul type de table et je ne crois pas qu'il y ait de bonnes raisons d'appeler certaines tables "tables de search". Utilisez une convention de dénomination qui fonctionne également pour chaque table.

Un domaine dans lequel les conventions de dénomination de table peuvent aider est la migration de données entre les environnements. Nous devons souvent déplacer des données dans des tables de search (qui contraignent les valeurs susceptibles d'apparaître dans d'autres tables) ainsi que des modifications de schéma, car ces lists de valeurs autorisées changent. À l'heure actuelle, nous ne nommons pas les tables de search différemment, mais nous envisageons d'éviter que le type de migration request «quelles tables sont des tables de search à nouveau? à chaque fois.