Le fait de prévenir des Valeurs En duplicata avec les Index dans l'Accès 2007
Microsoft Access Ajoutez des commentairesLa première règle de toute table consiste en ce que chaque record qu'il contient doit être unique. Pour faire respecter cette restriction, vous avez besoin de choisir une clé primaire (la Section 2.4), qui est un ou plusieurs champs qui ne seront pas jamais copiés dans de différents dossiers.
Voici la prise. Puisque vous avez appris dans le Chapitre 2, l'option la plus sûre de créer un champ de carte d'identité pour la clé primaire. Jusqu'à présent, toutes les tables que vous avez vues ont inclus ce détail. Mais et si vous avez besoin de vous assurer que d'autres champs sont uniques ? Imaginez que vous créez une table d'Employés. Vous suivez de bons principes de design de base de données et identifiez chaque record à un Numéro d'identification automatiquement produit. Cependant, vous voulez aussi vous assurer qu'aucun deux employé n'a le même Numéro de sécurité sociale (SSN) pour prévenir possible semblable aux erreurs le fait d'entrer par hasard dans le même employé deux fois.
La figure 4-5. Si vous utilisez la Date () la fonction comme la valeur implicite pour le champ de DateAcquired dans la table bobblehead, donc la chaque fois vous ajoutez un nouveau record de bobblehead, l'Accès se remplit dans la date actuelle. Vous décidez si vous voulez garder cette date ou le remplacer avec une différente valeur.
Note : Pour un replus frais rapide de pourquoi les champs de carte d'identité sont une si bonne idée, faites allusion à la Section 2.4. Dans la table d'Employés, vous pourriez vouloir certainement rendre le SSN la clé primaire, mais ce n'est pas la situation idéale quand vous commencez à relier des tables ensemble (le Chapitre 5) et il provoque des problèmes si vous avez besoin de changer le SSN plus tard (en cas d'une erreur), ou si vous entrez l'information d'employé avant que vous avez reçu le SSN.
Vous pouvez forcer un champ à exiger des valeurs uniques avec un index. Un index de base de données ressemble à l'index dans un bookit’s une liste de valeurs (d'un champ) avec un renvoi qui montre à la section correspondante (le plein record). Si vous indexez le champ de SocialSecurityNumber, l'Accès crée une liste comme cela et la conserve en coulisses dans votre dossier de base de données :
|
SocialSecurityNumber |
Endroit de plein record |
|---|---|
|
001-01-3455 |
â€\¦ |
|
001-02-0434 |
â€\¦ |
|
001-02-9558 |
â€\¦ |
|
002-40-3200 |
â€\¦ |
En utilisant cette liste, l'Accès peut déterminer vite si un nouveau record copie SSN existant. S'il fait, donc l'Accès ne vous permet pas de l'insérer.
Ainsi, comment appliquez-vous un index à un champ ? Le truc la propriété de terrain Indexée, qui est disponible pour chaque type de données sauf l'Objet d'OLE et l'Attachement. Quand vous ajoutez un champ, le jeu de la propriété Indexée à non, qui signifie que l'Accès ne crée pas un champ. Pour ajouter un index et prévenir des doubles, vous pouvez changer la propriété Indexée dans la vue de Design à Oui [Aucun Double]. La troisième option, Oui [les Doubles bien], crée un index, mais permet à plus qu'un record d'avoir la même valeur. Cette option ne vous aide pas à attraper des dossiers répétés, mais vous pouvez l'utiliser pour accélérer des recherches.
Note : Comme vous savez du Chapitre 2 (la Section 2.4.1), les clés primaires rejettent aussi des doubles, en utilisant la même technique. Quand vous définissez une clé primaire, l'Accès crée automatiquement un index sur ce champ.
Quand vous fermez la vue de Design après avoir changé la propriété de terrain Indexée, l'Accès vous incite à sauver vos changements. À ce point, il crée tous nouveaux index dont il a besoin. Vous ne pouvez pas créer un index sans doubles si vous avez déjà des renseignements en duplicata dans votre table. Dans cette situation, l'Accès vous donne un message d'erreur quand vous fermez la fenêtre Design et il essaie d'ajouter l'index.
Popularité : 2 % [?]









Commentaires récents