Wpis z mikrobloga

Jak ugryźć temat rekurencji w MySQL? Problem jest taki: Baza danych zawiera tabelę z produktami, które mogą być samodzielne lub być częścią innego produktu oraz produkty złożone. Złożony produkt może być częścią kolejnego itd. Druga tabela zawiera informację o węzłach. Jedyne założenie to produkt złożony nie może zawierać samego siebie na którymś etapie drzewa, bo to doprowadzi do nieskończonej pętli.

id Nazwa
1 Produkt 1
2 Produkt 2
3 Produkt 3
4 Produkt 4
5 Produkt 5

id Rodzic Potomek
1 2 1
2 2 3
3 4 2
4 4 5

Produkt 1, 3, 5 jest samodzielny lub jest składową
Produkt 2 jest złożeniem 1 i 3
Produkt 4 jest złożeniem 2 i 5

Jak to wydłubać z bazy, aby w miarę łatwo było zaprezentować w formie listowania wszystkich produktów, a te które mają złożenie wyświetlić wraz z sub produktami. Widziałem różne przykłady, ale one nie zakładały dowolnej ilości sub produktów lub przypadku, że produkt może być samodzielny lub być częścią.
#sql #mysql
  • 1