Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

clé primaire

4 réponses
Avatar
Moff
Bonjour,
En résumé, ma question est : Devrais-je et par quoi remplacer une clé
primaire de type nvarchar de longeur 65 par quelque chose de plus petit ou
plus performant ? J'utilise SQL serveur 2005 Express edition dans un projet
Access 2007.
Merci

4 réponses

Avatar
Moff
Pour être plus précis voici la structure :
1 table "video" avec le champ video_nom qui est la clé primaire
1 table "acteur" avec le champ acteur_nom qui est la clé primaire
et pour faire le lien entre les 2 tables qui sont une relation n - n
1 table "casting" avec 2 champs casting_nom_acteur et casting_nom_video. Ces
2 champs forment la clé primaire
Merci
Avatar
Richard_35
Bonjour Moff,

Ce n'est pas une bonne idée de créer une clé primaire avec des noms (de
vidéo ou d'acteur). Je n'ai pas d'exemple en tête, mais il me semble
probable qu'il y ait des noms de films identiques pour deux films
différents. Idem, pour les acteurs. Bref, une clé primaire doit être
déterminée unique de façon certaine.
Il faudrait donc que ces clés soient de type "numérotation automatique".

Table Vidéo :
- IdVidéo - numérotation automatique
- Nom - texte
- etc...

Table Acteur :
- IdActeur - numérotation automatique
- Nom - texte
- etc...

Table Casting (lien N <=> N) :
- IdVidéo - de la table Vidéo
- IdActeur - de la table Acteur

Bon courage,
Richard.

"Moff" a écrit dans le message de news:

Pour être plus précis voici la structure :
1 table "video" avec le champ video_nom qui est la clé primaire
1 table "acteur" avec le champ acteur_nom qui est la clé primaire
et pour faire le lien entre les 2 tables qui sont une relation n - n
1 table "casting" avec 2 champs casting_nom_acteur et casting_nom_video.
Ces
2 champs forment la clé primaire
Merci


Avatar
Moff
Bonjour Richard,
C'est déjà arrivé d'avoir des noms de films identiques. Alors je rajoute
l'année du film à la fin (par exemple : Alamo - 1960 et Alamo - 2004) (La
recrue - 1990 et La recrue - 2002).
J'aime bien ta solution car elle réduit énormément la taille des index. Je
ne sais pas encore si c'est difficile à implémenter ou à gérer. J'ai posté la
même question sur le forum anglophone et Rick Brand ne croit pas que, même si
les index numériques sont plus efficaces, la différence de performance soit
notoire à moins d'avoir une très grande quantité d'enregistrements. Il me
conseille de faire des tests pour en avoir la certitude.
Merci pour ta réponse!
Avatar
Richard_35
Bonjour Moff,

Ce n'est pas très bon de modifier une clé pour obtenir son unicité.
L'année devrait être un attribut du film, et non pas une partie de la
clé d'accès. D'ailleurs, je pense que cette année doit être aussi présente
dans les champs de ta table Video ; si oui, alors tu as une même information
doublée !...
Un défaut de cette méthode, entre autres : tu veux extraire les films
qui contiennent la chaîne de caractères "2001" ; résultat, tu auras tous les
films qui contiennent "2001" (donc, dont la date de sortie est 2001) + "2001
l'odyssée de l'espace".

Je ne parle donc pas de performances, mais uniquement d'analyse de
données.

Bon courage,
Richard.


"Moff" a écrit dans le message de news:

Bonjour Richard,
C'est déjà arrivé d'avoir des noms de films identiques. Alors je rajoute
l'année du film à la fin (par exemple : Alamo - 1960 et Alamo - 2004) (La
recrue - 1990 et La recrue - 2002).
J'aime bien ta solution car elle réduit énormément la taille des index. Je
ne sais pas encore si c'est difficile à implémenter ou à gérer. J'ai posté
la
même question sur le forum anglophone et Rick Brand ne croit pas que, même
si
les index numériques sont plus efficaces, la différence de performance
soit
notoire à moins d'avoir une très grande quantité d'enregistrements. Il me
conseille de faire des tests pour en avoir la certitude.
Merci pour ta réponse!