Note: les listes de relations à créer ou celles à supprimer peuvent se faire dans n'importe quel ordre si la création ou la suppression des relations se fait d'abord avec des listes de membres vides.
Les références cycliques ne peuvent exister que dans les listes de membres des relations. C'est là qu'il faut faire attention. Une solution c'est: * ne pas créer les relations avec les membres. On se contente de créer des relations entièrement vides (et même sans aucun tag) pour gagner du temps (ou juste un tag signalant que c'est une version intermédiaire, ce qui peut faciliter la récupération en cas d'échec d'un upload), puis on met à jour toutes les relations avec tous les tags et listes de membres complètes. * ne pas supprimer directement les relations ayant des membres. Commencer par les modifier en vidant tous les tags et membres (ou en gardant juste un tag indiquant que l'objet vide de sens va être supprimé), puis envoyer les demandes de suppression des relations vides. On ne peut dans les deux cas combiner ces étapes (en une seule version et non deux par relation à créer ou à supprimer) que si on n'est sûr qu'il n'y a pas de références cycliques entre les relations à créer ou entre les relations à supprimer. Et c'est là qu'un tri topologique permet d"éviter de doubler le nombre de versions à envoyer.
_______________________________________________ dev-fr mailing list [email protected] https://lists.openstreetmap.org/listinfo/dev-fr
