Salut à tous,
Petite question. Imaginons une base avec 1 million d'enregistrements gérés
sous forme d'arbre intervallaire. Du genre :
ID Libelle BG BD Niv
1 Root 1 22 1
2 Niveau 1 2 15 2
3 Niveau 1.1 3 10 3
4 Niveau 1.1.1 4 5 4
5 Niveau 1.1.2 6 7 4
6 Niveau 1.1.3 8 9 4
7 Niveau 1.2 11 14 3
8 Niveau 1.2.1 12 13
4
9 Niveau 2 16 21 2
10 Niveau 2.1 17 20
3
11 Niveau 2.1.1 18 19
4
Un premier utilisateur doit insérer 50 données dans le niveau 1.1.1. Le
bord droit du parent va donc être décalé de 101 (donc j'aurrai la valeur
106 dans mon cas) et tous les bords suivant de 2. La procédure à effectuer
est donc la suivante :
1. On récupère le bord gauche du parent (pour Niveau 1.1.1 c'est 4).
2. On insert les nouveaux éléments en partant du bord gauche comme base
(5,7,9,11,...99) , le bord droit = bord gauche +1 (6,8,10,...100)
3. On mets à jour le bord droit du parent (on aurrait pu le faire
directement à l'étape 1..) (pour Niveau 1.1.1 ça devient 101)
4. On mets à jour les bords suivants avec BG+2 et BD+2
Imaginons qu'un second utilisateur fasse la même manipulation quand
l'utilisateur en est seulement à l'étape 2
1. On récupère le bord gauche du parent (imaginons pour Niveau 1.2.1 c'est
12)
2. On insert les nouveaux éléments en partant du bord gauche comme base
(13,15,17...), le bord droit = bord gauche +1 (6,8,10,...100). Au même
moment, le premier utilisateur passe à l'étape 3. Paf ça fonctionne plus
correctement....
Comment faire pour éviter ce genre de problème ?!
Jérôme
Salut à tous,
Petite question. Imaginons une base avec 1 million d'enregistrements gérés
sous forme d'arbre intervallaire. Du genre :
ID Libelle BG BD Niv
1 Root 1 22 1
2 Niveau 1 2 15 2
3 Niveau 1.1 3 10 3
4 Niveau 1.1.1 4 5 4
5 Niveau 1.1.2 6 7 4
6 Niveau 1.1.3 8 9 4
7 Niveau 1.2 11 14 3
8 Niveau 1.2.1 12 13
4
9 Niveau 2 16 21 2
10 Niveau 2.1 17 20
3
11 Niveau 2.1.1 18 19
4
Un premier utilisateur doit insérer 50 données dans le niveau 1.1.1. Le
bord droit du parent va donc être décalé de 101 (donc j'aurrai la valeur
106 dans mon cas) et tous les bords suivant de 2. La procédure à effectuer
est donc la suivante :
1. On récupère le bord gauche du parent (pour Niveau 1.1.1 c'est 4).
2. On insert les nouveaux éléments en partant du bord gauche comme base
(5,7,9,11,...99) , le bord droit = bord gauche +1 (6,8,10,...100)
3. On mets à jour le bord droit du parent (on aurrait pu le faire
directement à l'étape 1..) (pour Niveau 1.1.1 ça devient 101)
4. On mets à jour les bords suivants avec BG+2 et BD+2
Imaginons qu'un second utilisateur fasse la même manipulation quand
l'utilisateur en est seulement à l'étape 2
1. On récupère le bord gauche du parent (imaginons pour Niveau 1.2.1 c'est
12)
2. On insert les nouveaux éléments en partant du bord gauche comme base
(13,15,17...), le bord droit = bord gauche +1 (6,8,10,...100). Au même
moment, le premier utilisateur passe à l'étape 3. Paf ça fonctionne plus
correctement....
Comment faire pour éviter ce genre de problème ?!
Jérôme
Salut à tous,
Petite question. Imaginons une base avec 1 million d'enregistrements gérés
sous forme d'arbre intervallaire. Du genre :
ID Libelle BG BD Niv
1 Root 1 22 1
2 Niveau 1 2 15 2
3 Niveau 1.1 3 10 3
4 Niveau 1.1.1 4 5 4
5 Niveau 1.1.2 6 7 4
6 Niveau 1.1.3 8 9 4
7 Niveau 1.2 11 14 3
8 Niveau 1.2.1 12 13
4
9 Niveau 2 16 21 2
10 Niveau 2.1 17 20
3
11 Niveau 2.1.1 18 19
4
Un premier utilisateur doit insérer 50 données dans le niveau 1.1.1. Le
bord droit du parent va donc être décalé de 101 (donc j'aurrai la valeur
106 dans mon cas) et tous les bords suivant de 2. La procédure à effectuer
est donc la suivante :
1. On récupère le bord gauche du parent (pour Niveau 1.1.1 c'est 4).
2. On insert les nouveaux éléments en partant du bord gauche comme base
(5,7,9,11,...99) , le bord droit = bord gauche +1 (6,8,10,...100)
3. On mets à jour le bord droit du parent (on aurrait pu le faire
directement à l'étape 1..) (pour Niveau 1.1.1 ça devient 101)
4. On mets à jour les bords suivants avec BG+2 et BD+2
Imaginons qu'un second utilisateur fasse la même manipulation quand
l'utilisateur en est seulement à l'étape 2
1. On récupère le bord gauche du parent (imaginons pour Niveau 1.2.1 c'est
12)
2. On insert les nouveaux éléments en partant du bord gauche comme base
(13,15,17...), le bord droit = bord gauche +1 (6,8,10,...100). Au même
moment, le premier utilisateur passe à l'étape 3. Paf ça fonctionne plus
correctement....
Comment faire pour éviter ce genre de problème ?!
Jérôme
Salut à tous,
Petite question. Imaginons une base avec 1 million d'enregistrements gérés
sous forme d'arbre intervallaire. Du genre :
ID Libelle BG BD
Niv
1 Root 1 22
1
2 Niveau 1 2 15
2
3 Niveau 1.1 3 10
3
4 Niveau 1.1.1 4 5
4
5 Niveau 1.1.2 6 7
4
6 Niveau 1.1.3 8 9
4
7 Niveau 1.2 11 14
3
8 Niveau 1.2.1 12 13 4
9 Niveau 2 16 21
2
10 Niveau 2.1 17 20 3
11 Niveau 2.1.1 18 19 4
Un premier utilisateur doit insérer 50 données dans le niveau 1.1.1. Le bord
droit du parent va donc être décalé de 101 (donc j'aurrai la valeur 106 dans
mon cas) et tous les bords suivant de 2. La procédure à effectuer est donc
la suivante :
1. On récupère le bord gauche du parent (pour Niveau 1.1.1 c'est 4).
2. On insert les nouveaux éléments en partant du bord gauche comme base
(5,7,9,11,...99) , le bord droit = bord gauche +1 (6,8,10,...100)
3. On mets à jour le bord droit du parent (on aurrait pu le faire
directement à l'étape 1..) (pour Niveau 1.1.1 ça devient 101)
4. On mets à jour les bords suivants avec BG+2 et BD+2
Imaginons qu'un second utilisateur fasse la même manipulation quand
l'utilisateur en est seulement à l'étape 2
1. On récupère le bord gauche du parent (imaginons pour Niveau 1.2.1 c'est
12)
2. On insert les nouveaux éléments en partant du bord gauche comme base
(13,15,17...), le bord droit = bord gauche +1 (6,8,10,...100). Au même
moment, le premier utilisateur passe à l'étape 3. Paf ça fonctionne plus
correctement....
Comment faire pour éviter ce genre de problème ?!
Jérôme
Salut à tous,
Petite question. Imaginons une base avec 1 million d'enregistrements gérés
sous forme d'arbre intervallaire. Du genre :
ID Libelle BG BD
Niv
1 Root 1 22
1
2 Niveau 1 2 15
2
3 Niveau 1.1 3 10
3
4 Niveau 1.1.1 4 5
4
5 Niveau 1.1.2 6 7
4
6 Niveau 1.1.3 8 9
4
7 Niveau 1.2 11 14
3
8 Niveau 1.2.1 12 13 4
9 Niveau 2 16 21
2
10 Niveau 2.1 17 20 3
11 Niveau 2.1.1 18 19 4
Un premier utilisateur doit insérer 50 données dans le niveau 1.1.1. Le bord
droit du parent va donc être décalé de 101 (donc j'aurrai la valeur 106 dans
mon cas) et tous les bords suivant de 2. La procédure à effectuer est donc
la suivante :
1. On récupère le bord gauche du parent (pour Niveau 1.1.1 c'est 4).
2. On insert les nouveaux éléments en partant du bord gauche comme base
(5,7,9,11,...99) , le bord droit = bord gauche +1 (6,8,10,...100)
3. On mets à jour le bord droit du parent (on aurrait pu le faire
directement à l'étape 1..) (pour Niveau 1.1.1 ça devient 101)
4. On mets à jour les bords suivants avec BG+2 et BD+2
Imaginons qu'un second utilisateur fasse la même manipulation quand
l'utilisateur en est seulement à l'étape 2
1. On récupère le bord gauche du parent (imaginons pour Niveau 1.2.1 c'est
12)
2. On insert les nouveaux éléments en partant du bord gauche comme base
(13,15,17...), le bord droit = bord gauche +1 (6,8,10,...100). Au même
moment, le premier utilisateur passe à l'étape 3. Paf ça fonctionne plus
correctement....
Comment faire pour éviter ce genre de problème ?!
Jérôme
Salut à tous,
Petite question. Imaginons une base avec 1 million d'enregistrements gérés
sous forme d'arbre intervallaire. Du genre :
ID Libelle BG BD
Niv
1 Root 1 22
1
2 Niveau 1 2 15
2
3 Niveau 1.1 3 10
3
4 Niveau 1.1.1 4 5
4
5 Niveau 1.1.2 6 7
4
6 Niveau 1.1.3 8 9
4
7 Niveau 1.2 11 14
3
8 Niveau 1.2.1 12 13 4
9 Niveau 2 16 21
2
10 Niveau 2.1 17 20 3
11 Niveau 2.1.1 18 19 4
Un premier utilisateur doit insérer 50 données dans le niveau 1.1.1. Le bord
droit du parent va donc être décalé de 101 (donc j'aurrai la valeur 106 dans
mon cas) et tous les bords suivant de 2. La procédure à effectuer est donc
la suivante :
1. On récupère le bord gauche du parent (pour Niveau 1.1.1 c'est 4).
2. On insert les nouveaux éléments en partant du bord gauche comme base
(5,7,9,11,...99) , le bord droit = bord gauche +1 (6,8,10,...100)
3. On mets à jour le bord droit du parent (on aurrait pu le faire
directement à l'étape 1..) (pour Niveau 1.1.1 ça devient 101)
4. On mets à jour les bords suivants avec BG+2 et BD+2
Imaginons qu'un second utilisateur fasse la même manipulation quand
l'utilisateur en est seulement à l'étape 2
1. On récupère le bord gauche du parent (imaginons pour Niveau 1.2.1 c'est
12)
2. On insert les nouveaux éléments en partant du bord gauche comme base
(13,15,17...), le bord droit = bord gauche +1 (6,8,10,...100). Au même
moment, le premier utilisateur passe à l'étape 3. Paf ça fonctionne plus
correctement....
Comment faire pour éviter ce genre de problème ?!
Jérôme