-
Bonjour,
Je remonte ce topic pour au final indiquer la stratégie que j'utilise.
Pour la gestions des catégories, la base de données n'est pas sollicité. La tables des catégories est parcouru de manière linière de manière simple. Maintenant, l'astuce s'agit qu'un fils retrouve son parent.
Pour cela, je parcours la collection d'objet catégorie et affecte les fils.
A la fin, le parent, le premier ancêtre possède tout ses fils et chaque fils possède ses fils et ainsi de suite.
J'ai effectué des test à 10 catégories et chacune de ces catégorie possède 10 enfants et chaque enfants possède 10 catégorie. Donc trois niveaux. L'objet est sérialisé et placé dans une table de type Memory.
La lecture puis la désérialisation de la chaine s'effectue dans un temps records.
La même chose avec 1000^1000^1000 ça se complique mais reste assez raisonnable. Pour gagner du temps je place en objet seulement les id et utilise la fonction wakup et sleep au moment ou je désérialise l'objet. Ce qui a pour effet de gagner en temps de traitement.
Ce que je n'ai pas dit c'est qu'une catégorie peut possèder :
Des documents liés, des produits, des traductions, etc. Ceci sans limite. L'affaire se corse mais avec la méthode ci-dessus c'est totalement transparent.