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