2010-05-23 5 views
1

j'ai deux tables dans ma base de données:
Quel est le nom de la table SQL pour la table entre 'Users' et 'UserTypes'?

  • utilisateurs: Contenir les informations utilisateur
  • UserTypes: Contenir les noms des types d'utilisateurs (étudiants, enseignants, spécialistes) - Je ne peux pas le renommer en « Types «nous avons une table avec ce nom

relation entre les utilisateurs et UserTypes beaucoup à beaucoup .. donc je vais créer une table qui ont UserID (FK) avec UserTypeID (FK), mais je tente de trouver le meilleur nom pour cette table ... une suggestion s'il vous plaît?

+0

Je vois @DVK et répond @rmalayter sont bons mais je préfère le style @Waleed –

Répondre

4

Je recommanderais de suivre les conventions d'appellation que vous avez indiquées dans vos directives de codage. - Etat pour ces types de tables. Si vous ne disposez pas d'une directive, alors quelque chose comme cela pourrait fonctionner:

Users_UserTypes

1

Je pense qu'une bonne pratique serait d'appeler quelque chose comme « Users_UserTypes », peut-être préfixé avec quelques mots de code classique pour vous inventez Cet objectif. C'est ce qui se passe dans ma demande, de toute façon.

1

Avez-vous autre chose que le "type" dans la table UserTypes? Combien y a-t-il d'entrées? S'il n'y en a qu'un petit nombre, et qu'il ne contient aucune donnée supplémentaire, alors je dénormaliserais simplement cette table et je n'aurais pas de menuisier séparé du tout.

C'est:

Users: 

    ID  | First Name  | Last Name 
-----------+------------------+-------------------- 
123  | John    | Smith 
456  | Jane    | Doe 

UserTypes: 

    UserID | Type 
-----------+---------------- 
123  | student 
123  | specialist 
456  | teacher 

La colonne « Type » ne doit pas être une chaîne, il pourrait être un entier qui est mis en correspondance avec une énumération dans votre code ou tout ce que vous aimez.

OMI, il n'y a pas des choses beaucoup le point de dénormaliser au point où vous avez 500 tables tous réunissant tout le temps ...

+0

nous pensons à ces idées, mais le problème que de nombreux développeurs travaillent dans cette base de données pendant la période différente et si elle est un juste chiffres sans les développeurs qui signifie ne sera pas capable de comprendre cela signifie spécialement certains ne peuvent pas voir un code qui explique que nous préférons le faire en tant que table existante en db –

1

Une autre approche (en plus Users_UserTypes) serait UserTypes_for_Users Il est un peu moins conventionnel, mais à mon humble avis plus compréhensible

1

utilisateur, UserType (I nom chaque tableau singulier) et ... UserTypeMap

0

Nous utilisons une convention de nommage Table1_x_Table2 pour beaucoup à plusieurs tables.

Cela rend les choses tout à fait clair, et indique la nature référence croisée de la table: Person_x_Company Package_x_Product User_x_UserType

Pour les tables auto-relation, comme employé à gestionnaire, nous avons une table Person_x_Person avec une colonne "relation_type" et "priority", pour permettre plusieurs gestionnaires par employé avec un gestionnaire primaire ou secondaire.

Questions connexes