Я полагаю, вы используете реляционную базу данных, такую как Mysql, Ms sql, Sqlite, Postgresql или Oracle для хранения?
Gedcom - это стандарт для обмена информацией, поэтому вы знаете, сколько столбцов у вас будет. Возможно, в будущем стандарт будет расширен за счет новых свойств, но, вероятно, не будет много новых свойств. Вы можете легко расширить таблицу несколькими новыми столбцами.
Я бы использовал «горизонтальную» таблицу, а не систему «сущность-атрибут-значение» (вертикальная таблица). Системы с вертикальными столами обычно работают медленно. Они не могут быть правильно проиндексированы и сбивают с толку оптимизатор запросов.
Другое дело, когда ваши пользователи могут сами определять новые свойства в своих профилях, такие как цвет глаз (u) r или любимый цвет (u) r. Насколько гибкими вы хотите, чтобы эти профили были?