У меня есть набор данных, который выглядит примерно так:
id_a id_b
(1) jkshdgvksjhsjk8983298jhsdhj llkmlkmsdgsdf97897998
(2) llkmlkmsdgsdf97897998 sdkjvhkasdk3298798kjdjsk
(3) jkshdgvksjhsjk8983298jhsdhj yiuyweruiyriueshjdbvjh89238
(4) cxmnvbmnxmbnxcv4398744jskdhk bxcmnvbnmxcweuiy84398
В моем наборе данных нет ключей, кроме комбинаций атрибутов (т. Е. Строка 1 указывает на связь между id_a и id_b в этом строка, то же самое для строки 2, et c.). Кроме того, данные являются иерархическими - в строке 1 id_a относится к id_b. В строке 2 id_b из строки 1 теперь является id_a и связан с id_b в строке 2 (то есть теперь существует иерархическое отношение: jkshdgvksjhsjk8983298jhsdhj -> llkmlkmsdgsdf97897998 -> sdkjvhkasdk3298798kjdjsk ).
Существует также связь между llkmlkmsdgsdf97897998 (id_b из строки 1 и id_a из строк 2 и 3) и другим идентификатором ( yiuyweruiyriueshjdbvjh89238 ), таким что llkmlkmsdgsdf97897998 теперь является частью следующего пути взаимосвязи:
(1) jkshdgvksjhsjk8983298jhsdhj -> llkmlkmsdgsdf97897998 --k * 10h sk 10h7hdk 10h7xdh1024
Первый элемент этого пути ( jkshdgvksjhsjk8983298jhsdhj ) является частью другого пути: jkshdgvksjhsjk8983298jhsdhj -> yiuyhhdwjwjjjjjtjjjjjjjjjjjjjjhjjjjjjjjjhjjhjjjjjjjhjjhjjjjjjhjjjjhjjjjjhjjhjjhjjhjjhjjhjjhjjhjjhjjhjjhjjhjjjjjjjjjjjjjjjjjjjjjjjjjjhjjjjjjjjjjhtjs * В моем выводе я хотел бы показать оба этих пути , а также путь, представленный отношением в строке 4 ( cxmnvbmnxmbnxcv4398744jskdhk -> bxcmnvbnmxcweuiy84398 ) но я НЕ хочу показывать путь промежуточных отношений ( llkmlkmsdgsdf97897998 -> sdkjvhkasdk3298798kjdjsk ), поскольку он будет перезаписан Дант.
Каков наилучший способ создать список этих уникальных путей, чтобы все иерархические отношения были захвачены (независимо от количества уровней в иерархии - мои данные могут иметь более 50 уровней) и дочерние / низкоуровневые отношения нет? Спасибо, и, пожалуйста, дайте мне знать, если я смогу уточнить.