Bonjour à tous,
Après avoir passer quelques jours face à moi même à essayer de me dépatouiller avec mon problème, je pense qu'il est plus que temps de vous demander de l'aide : à l'aide !!!!! Car c'est vraiment le forum sur lequel j'en trouve le plus, de l'aide !
Voici le contexte (je travaille avec une bdd mysql et JAVA) : j'ai une liste de message décrits par :
id_message
sujet_message
date_message
(et aussi d'autres propriétés mais pas très importantes)
Je dois pouvoir classer les messages dans des conversations, selon le sujet du message, ce qui est normal, mais aussi selon la date. Par exemple, deux messages qui ont le même sujet et qui sont séparés de moins de x jours (où x est donné en paramètre) feront partie de la même conversation. Si le nombre de jours qui les séparent est supérieur à x, ils seront placés dans 2 conversations différentes.
J'ai pensé à plusieurs choses, mais rien ne me satisfait. La chose la plus évoluée que j'ai pondue, c'est de ranger les messages dans 2 tableaux, comparer chaque ligne du premier tableau avec tous les éléments du second tableau et de faire (pardon pour l'énoncé algorithmique, ça fait longtemps que je n'ai pas pratiqué les conventions !!) :
si tab1_intitulé_sujet_x == tab2_intitulé_sujet_x
si tab1_date_sujet_x <= tab2_date_sujet_x + paramètre
je range dans un tableau à 3 entrées les clés de tab1_sujet_x, tab2_sujet_x, numéro_conversation
sinon je continue
sinon je continue
cela marche très bien mais comment ensuite, si je retombe sur sujet x plus loin dans tab2, je retrouve la conversation que j'ai déjà affectée à sujet_x ?
J'espère que mon énoncé est compréhensible, sinon n'hésitez pas à me poser des questions pour éclaircissements !!!
Merci d'avance à vous tous, je suis vraiment en galère et ma tête explose (et je suis assez nul en algo aussi !!!)
bon courage
Partager