Correspondance dans MySql

Correspondance dans MySql - SQL/NoSQL - Programmation

Marsh Posté le 19-05-2009 à 21:00:20    

Bonjour à tous,
 
Je vais prendre un exemple fictif afin d'être clair sur ma question actuelle.
Admettons que j'ai 1 table Mysql qui contienne une liste de mots :
---------
id |mot
--------
1  page
2  sage
3  mage
...
des mots ayant très peu de différence entre eux.
 
Je voudrais, quand je suis sur ma page "sage" pouvoir lister tous les mots correspondants. Comme les possibilités sont n, je ne peux pas faire quelque chose du genre :
 
id | mot | correspondance
 
En effet, je ne peux pas savoir à l'avance combien j'en aurais. Sauf si je rentre tous les ID dans correspondance avec un séparateur puis faire une requête LIKE, mais je ne trouve pas celà très élégant non?
 
Une autre idée était de faire une autre table de ce type :
-----------------------
id_1 | id_2
-------------------------
1       2
2       1
1       3
3       1
2       1
...
Mais ca vite faire un monstre !
 
Ma question n'est pas comment faire un script qui trouve les similarités - en plus c'est fictif, alors ne cherchez pas inutilement :), mais bien comment organiser les liaisons entre elles.
 
Merci pour votre aide !

Reply

Marsh Posté le 19-05-2009 à 21:00:20   

Reply

Marsh Posté le 19-05-2009 à 21:38:31    

la table intermediaire de correpondance  est la meilleure solution


---------------

Reply

Marsh Posté le 21-05-2009 à 13:25:19    

merci Flo
 
erf, je me dirige vers la version monstre alors?
Sinon dois-je faire des doubles entrées, comme indiqué dans mon exemple avec id_1 et id_2
-----------------------
id_1 | id_2
-------------------------
1       2
2       1  
 
ou dois-je rentrer qu'une seule fois?
-----------------------
id_1 | id_2
-------------------------
1       2
 
En une seule fois, j'ai peur que ce soit la foire par la suite au moment du requetage non?


Message édité par Randy Orton le 21-05-2009 à 13:26:00
Reply

Marsh Posté le 21-05-2009 à 13:37:47    

Si tu les encodes systématiquement dans le même ordre (le plus petit dans id_1 et le plus grand dans id_2), ta requête ne sera pas plus complexe puisque tu n'auras toujours qu'un seul cas à envisager.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed