Я работаю над заявкой на благотворительную студенческую организацию. Приложение будет отслеживать участие и сбор средств для (в первую очередь) студентов-участников мероприятия. Одна из вещей, которую мы хотели бы сделать, - это собрать демографическую информацию о студентах, которые зарегистрировались для участия в мероприятии, из нашего корпоративного каталога, чтобы использовать его для оценки маркетинга и создания отчетов для администрации об участии студентов по годам, специальностям, колледжам и т.д. Одной из целей проекта является продвижение приложения для аналогичных организаций в других университетах. Я разрабатываю приложение с архитектурой плагинов для аутентификации и доступа к каталогам, чтобы сделать его более общим.
До сих пор я придумал несколько разных способов хранения демографической информации в базе данных. Я могу предположить, что большинство университетов хотели бы собирать (и иметь источники информации) подобную демографическую информацию. В этом случае я могу хранить соответствующие части демографической информации (те, которые меняются ежегодно) в столбцах таблицы регистрации, а остальные в таблице участников (те вещи, которые являются постоянными для отдельного человека). В качестве альтернативы я рассмотрел возможность хранения демографической таблицы, содержащей идентификатор регистрации, атрибут, тройку значений для каждой регистрации и требуемый атрибут. Я думаю, что первый вариант гораздо проще запрашивать для отчетов, тогда как второй вариант гораздо более гибкий.
Мне интересно, есть ли другие альтернативы, которые я не рассматривал. Или, если вы столкнулись с подобной проблемой, как вы справились с ней (и насколько вы были удовлетворены результатом)?