18-09-2009, 08:37 AM
c'est peut être très mauvais mais je me lance...
phase 1 copie de la page :
lorsque tu dupliques ta donnée maître, pourquoi ne pas rajouter un champ "id source" qui contiendra l'id de la page d'origine.
phase 2 copie des blocs :
dans le insert into ... select ... tu rajoutes la jointure sur page."id source" = bloc."id page"
et tu rajoutes un champ "id bloc source" qui contiendra l'id du bloc créé
phase 3 copie du détail :
même principe que phase 2
phase 4 "séparation"
tu updates chacune des tables qui possèdent un "id source" (page et bloc) pour permettre une prochaine copie de la page et des blocs
au global 5 requêtes (3 insert, 2 update)
la contrainte que je vois dans ce processus, c'est que tu dois interdir l'accès à ces tables le temps des traitements (pour éviter deux duplications de la même page, ce qui mettrais le binz)
voilà, c'est peut être pas très efficaces, j en sais rien, mais à première vue ça a l air de marcher
phase 1 copie de la page :
lorsque tu dupliques ta donnée maître, pourquoi ne pas rajouter un champ "id source" qui contiendra l'id de la page d'origine.
phase 2 copie des blocs :
dans le insert into ... select ... tu rajoutes la jointure sur page."id source" = bloc."id page"
et tu rajoutes un champ "id bloc source" qui contiendra l'id du bloc créé
phase 3 copie du détail :
même principe que phase 2
phase 4 "séparation"
tu updates chacune des tables qui possèdent un "id source" (page et bloc) pour permettre une prochaine copie de la page et des blocs
au global 5 requêtes (3 insert, 2 update)
la contrainte que je vois dans ce processus, c'est que tu dois interdir l'accès à ces tables le temps des traitements (pour éviter deux duplications de la même page, ce qui mettrais le binz)
voilà, c'est peut être pas très efficaces, j en sais rien, mais à première vue ça a l air de marcher