Женщина, некурящяя, нет детей и т.д
В подобного рода заданиях
совершенно невозможно сесть и написать ТЗ "от и до".
Здесь
практика и эксплуатация будет гораздо важнее всей реляционной теории или шаблонов разработки.
Теория говорит что EAV подходит. Но практически в больших базах
EAV не работает потому что он неудобен
и работа с ним идет медленно.
Практика применения DBMS уже отказалась от полной нормализации в классическом виде
3-4-5-6НФ
и уже ей не следуют. Postgresql к примеру позволяет завести JSON поле и туда можно положить
такие сложные атрибуты как
пол = женщиа (феминистика)
статус = вдова
прицеп = 5 детей
курит = нет
любит бухнуть = да но по праздникам
предпочтения в сексе = легкий БДСМ и вынос мозга мужчинам
И эти атрибуты ПРОИНДЕКСИРОВАТЬ (!) средствами Postgres и искать гораздо быстрее чем по EAV.
Возможные аномалии возникающие в следствие денормализации мы можем отдельно обсудить.
Но 99% они решаются не технически а по бизнесу. Просто договариваемся что вот так и так дескыть
переименовать атрибуты мы не можем. Принципиально невозможно но и пофиг. Задача не требует такого.