PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 09-04-2015 14:22:01

pascalpa
Membre
Inscription : 02-02-2014
Messages : 3

Utiliser des INT ou des VARCHAR dans une table associative ?

Bonjour,

Je vais poser une question sans doute bête et naïve neutral, mais je n’ai pas trouvé de réponse claire (et je débute, merci d’être indulgent !).

Admettons que j’aie 2 tables :
Termes (id_terme, terme)
Synonymes (id_syn, synonyme)

Les champs id_terme et id_syn sont des INT.
Les champs terme et synonyme sont des VARCHAR.

Etant donné qu’il y a une relation n,n entre les 2 tables, je vais créer une table associative faisant correspondre les ID des 2 tables : Assoc(id_terme, id_syn)

Jusque là OK. Et là, tout à coup, je me dis : mais après tout, qu’est-ce qui m’empêche de créer une table associative contenant les termes et les synonymes ? Ce sera peut-être moins performant (un peu moins ou beaucoup moins… telle est la question !), mais en cas de problème, j’y verrais plus clair. Ca donnerait ça : Assoc(terme, synonyme)

Est-ce que c’est vraiment une solution à proscrire absolument (en termes de performances) ou pas forcément ?

Merci pour vos réponses.
Pascal

Hors ligne

#2 08-06-2015 05:53:08

Delphine
Membre
Inscription : 21-10-2014
Messages : 18

Re : Utiliser des INT ou des VARCHAR dans une table associative ?

Bonjour pascalpa,

Vous pouvez créer la table Assoc

Dans cette table il faudrait mettre
id_Assoc
id_terme
id_syn

Dans cette table, il est possible de mettre plusieurs synonymes pour chaque thermes.

Hors ligne

#3 09-06-2015 13:59:14

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Utiliser des INT ou des VARCHAR dans une table associative ?

Bonjour,

Etant donné qu’il y a une relation n,n entre les 2 tables, je vais créer une table associative faisant correspondre les ID des 2 tables : Assoc(id_terme, id_syn)

Il s'agit bien en effet au niveau bases de données de la façon correcte de représenter une relation n,n au sens de l'algèbre relationnelle. Elle sera performante tant que ces ids resteront représentés par des entiers à valeur purement technique. Selon le SGBDR utilisé, l'ordre du doublet {id_terme,id_syn} ou {id_syn,id_terme} aura quant à lui un impact au niveau indexation (notion d'index couvrant), et donc au niveau performances, selon votre contexte d'exploitation.

Bonne journée.

Dernière modification par Jc (09-06-2015 14:13:16)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums