J'ai une table qui a deux colonnes varchar (Max)Dois-je utiliser une clé primaire générée automatiquement si je ne fais que la recherche d'une table?
Column 1 Column 2
-----------------------
URLRewitten OriginalURL
sa part de mon URL réécrivant pour un site WebForms de asp.net. Quand une url arrive, je fais une vérification pour voir si c'est dans la table si j'utilise l'OriginalURL. Ma question est, si tout ce que je fais est d'interroger la table pour les URL et aucune autre table dans la base de données ne liera jamais à cette table a-t-elle besoin d'un champ de clé primaire dédié? comme un numéro automatique? Est-ce que cela rendra les requêtes plus rapides?
et comment puis-je rendre la requête plus rapide?
Modifier: J'ai une contrainte unique sur URLRewitten.
Modifier: façons j'utilise ce tableau ..
- Requête lorsqu'une nouvelle requête arrive .. recherche sur URLRewitten pour trouver originalUrl
- Lorsque besoin d'afficher un lien sur le site, i requête sur l'OriginalURL pour trouver l'url URLRewitten que je devrais utiliser.
- Lors de l'ajout d'une nouvelle URL à la table, je m'assure qu'elle n'existe pas déjà.
thats tous les querys je fais .. pour le moment.
Les deux colonnes ensemble seraient uniques.
-1 les clés primaires ne sont pas requises – Andomar
+1 Ne jamais créer une table sans clé primaire. Fin de l'histoire. –
@Andomar: J'espère que tout employeur éventuel lit cette déclaration. Il n'y a aucune excuse pour ne pas avoir une clé primaire de QUEL genre sur une table permanente. –