Clé primaire comme du texte
Dans les bases de données de cours que j'ai fait pendant ma scolarité (approx. Il y a 4 ans), j'ai pensé qu'il est recommandé d'éviter l'utilisation de chaînes de caractères que la clé primaire de type de données.
Quelqu'un peut me dire quels sont les avantages et les inconvénients du choix d'un character varying type de données de la clé primaire dans SQL et combien la condition est vraie?
N. B.: (je suis en utilisant PostgreSQL base de données). Je suis aussi de gérer une situation où vous avez besoin de faire référence à un tel tableau à partir d'un autre, donc de mettre de clé étrangère sur character varying type de données. Merci de prendre en compte également.
stackoverflow.com/questions/404040/...
OriginalL'auteur artaxerxe | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Les avantages que vous avez pour le choix d'un personnage de type de données comme un champ de clé primaire, c'est que vous pouvez choisir quelles données il peut montrer. Comme un exemple, vous pourriez avoir l'adresse e-mail que le champ de clé pour une table des utilisateurs. Les élimine le besoin pour une colonne supplémentaire. Un autre avantage est que si vous avez une commune de la table de données qui contient les index de plusieurs autres tables (pensez à une NOTE de table avec une référence externe pour la FINANCE, de CONTACT, et ADMIN tables), vous pouvez facilement savoir ce tableau présente venu (par exemple, vos FINANCES table a un indice de F00001, CONTACTEZ le tableau a un indice de C00001, etc). J'ai peur que les inconvénients qui vont être plus grandes dans cette réponse que je suis contre une telle approche.
Les inconvénients sont comme suit:
Dans votre cas vous pouvez toujours mettre une clé étrangère sur un indice numérique, donc je ne suis pas sûr de savoir pourquoi vous voulez le forcer à être un type varchar. La recherche et le filtrage sur un champ numérique est théoriquement plus rapide qu'un champ de texte que le serveur va être obligé de convertir les données en premier. En général, vous avez un numérique de la clé primaire qui est non-cluster, puis de créer une clé cluster sur votre colonne de données que vous allez filtre beaucoup.
Ceux sont des normes générales lors de l'écriture de SQL, mais quand il s'agit de l'analyse comparative, vous ne trouverez que des colonnes varchar sont un peu plus lent sur l'adhésion et de filtrage que les colonnes de type entier. Aussi longtemps que vos clés primaires ne changent JAMAIS, alors vous allez bien.
OriginalL'auteur DFM