1. Парсинг: datacol
2. Хранение: деревья на основе ID: id, parent_id, param1,....,paramN
Про детей и взрослых - комбинаторика.
Биты данных: 0 - ребёнок, 1 - взрослый, 00-11 - кол-во от 0 до 3.
Тогда:
000000 - мест нет
000001 - 1 ребенок
000101 - 1 взрослый
101001 - 1 взрослый и 1 ребёнок
110001 - 2 взрослых и 1 ребёнок
110010 - 2 взрослых и 2 ребёнка
111011 - 3 взрослых и 3 ребёнка
При фиксированном порядке следования данных можно избавиться от 2-х лишних битов.