J'ai une table les deux contient une colonne d'identité (graine) p> quelle est la recommandation convention de dénomination pour la colonne d'identité? em> p> est strong> it " id code>" (pour les deux tableaux): P>
Widgets.WidgetId
Persons.PersonId
3 Réponses :
La meilleure pratique pour cela est de préférer le nom de la table. P>
Cela rendra beaucoup plus clair lorsque vous rejoignez quel champ vous vous référez à la liste code> code>. p>
Cela rend également un mauvais mauvais En règle générale, des noms de champ en double sur des tableaux devraient être évités, sauf si elles représentent des données identiques. P> rejoindre code> conditions impossible, c'est-à-dire. p>
Rejoindre Tablea sur ID = Tablea.ID Code> P>
L'argument de la jointure accidentelle est un très bon point. J'ai toujours alias mes tables quand je me joins, mais il y a définitivement cette possibilité.
Ceci est un cas où j'irais faire de la redondance et avoir une chose.
Sinon, vous devez alias partout em> lorsque vous rejoignez p>
Remarque: ceci a déjà été fait pour
Pourquoi nommer la colonne principale de la clé principale de la table "ID" considérée comme une mauvaise pratique? P>
J'ai toujours alias mes tables quand je les rejoints, je ne vois pas cela comme un inconvénient.
@Icarus: aliasing colonnes i> Vous n'avez donc pas d'identifiant deux fois dans un ensemble de résultats
@gbn quand vous dites "alias", voulez-vous dire dans la déclaration SELECT?
@ROYI NAMIR: Oui, selon la réponse de Garrett Vlieger
@ROYI NAMIR: Mon lien avec programmeurs.sq peut-être: 100s de votes et de commentaires
@Gbn mais c'est un problème avec toute colonne i> pour toute table i>. On peut potentiellement se retrouver avec de nombreuses colonnes avec des noms redondants simplement pour éviter un problème très improbable et facile à détecter de toute façon, spécialement maintenant avec tant d'outils fournissant des logiciels Intellisse, ORM, etc.
@Icarus: allez voir l'autre lien sur programmeurs.se Rejoindre le Bunfight là i>
Utiliser le nom de la table dans la colonne Identité est légèrement redondant, mais je trouve que cela sera utile et plus descriptif, en particulier lors de la réalisation de jointures de clé étrangère. Par exemple, qui semble mieux: ou p> La première requête est plus explicite et conduit à des jointures moins accidentelles. Il élimine également la nécessité d'utiliser des alias dans votre liste de sélection. P> p>
Ceci a été demandé avant sur Les programmeurs se soient , malheureusement, je ne peux pas l'envoyer là-bas. C'est juste trop large pour le débordement de la pile.
@Templi Salut, je ne comprends toujours pas pourquoi tu la fermais ... Je viens de poser une question parce que j'avais un dilemme ... jamais voulu créer un débat ...
@ROYINAMIR Ce n'est jamais un débat. C'est ainsi que fonctionne le réseau d'échange de pile. Tu vas bien.
@ROYINAMIR Le texte sous la principale raison est appliqué automatiquement si cette raison de fermeture est sélectionnée. La question est intéressante, ce n'est tout simplement pas un bon ajustement pour le site. Nous faisons très bien des questions qui entraînent une réponse simple, techniquement «meilleure». Les votes sur ce type de question indiquent essentiellement «oui, c'est comme ça que je le fais». Programmers.stackexchange.com a été créé pour fournir un lieu de vrais problèmes mondiaux qui ne correspondent pas à un débordement de la pile. Tu n'as rien fait de mal :)