Не могу придумать правильный алгоритм

Имеется около 500 уникальных сущностей. Пусть условно это будут имена людей. Имя Иван может иметь, например, только 3 фамилии: Иванов, Петров, Сидоров. В свою очередь, фамилия Иванов, именно в сочетании с именем Иван, может иметь только 1, 3, 5 (ну, детей, пусть будет). Именно фамилия Петров в сочетании с именем Иван может иметь 1, 4, 5, 6 (детей).

Допустим следующее имя Сергей. У него могут быть только 2 фамилии Петров и Кузнецов. Фамилия Петров в сочетании с именем Сергей может иметь только 1, 2, 5, 6 (детей), а Кузнецов 1, 2 ребенка.

Имеем: всего уникальных имен 500, уникальных фамилий 10 (который могут относится к разным именам), количество детей: минимальное 0 максимальное 7.

Мне нужно, чтобы в интерфейсе приложения подгружались, выбор за выбором, только те данные, который присущи выбранному сочетанию. Ну, например, пользователь в выбрал имя Иван, тут же подгрузились доступные фамилии для этого имени. При выборе фамилии (Иванов, допустим), тут же подгрузилось количество детей для сочетания Иван Иванов.

Дело в том, что на ум приходит два варианта:

  1. Все расписать в ветвлениях IF.
  2. Каждый уникальный вариант заранее инициализровать айдишником (ну, напрмиер заюзать БД) и выводить доступные варианты по номеру АйДи: ну, например, по аналогии с именем Иван: id-Name-SirName-Childs 1-Иван-Иванов-1,3,5 2-Иван-Петров-1,4,5,6 3-Иван-Сидоров-0,2,5 4-Сергей-Петров-1,2,5,6 5-Сергей-Кузнецов-1,2 и т.д.

Оба этих варианта очень трудоемкие. Это работы на пару месяцев, если не больше. Можно ли придумать какой-нить алгоритм здесь с минимальным количеством кода?


Ответы (0 шт):