Tātad vajag nevis vienkārši "next", bet gan koks ar zarošanos.
1
---------|----------
| |
2 3
| ------|------
4 | |
5 6
Cik es sapratu tavu sistēmu, tad šitā neies cauri, jo tev tur katram sanāk tikai viens "nākamais" apgreids. Tipa 1 -> 2, bet vajag arī 3 ( 1 -> 2; 3 ).
Vajag glabāt visus apgreidus atsevišķi, turpat glabāt arī requirementus katram apgreidam. Pēc tam skatās, kādi apgreidi lietotājam jau ir, pēc tā atrod to, kādus viņš var dabūt tālāk.