Вы путаете два термина. Я так понял, вы тут противопоставляете
ValueObject и
Entity из DDD.
ValueObject - это некоторое значение, которые не существует само по себе в предметной области. (например адрес). Для
ValueObject, обычно, не заводят отдельную таблицу в БД.
Entity - это некоторая модель объекта предметной области (например здание)
На примере адреса и здания:
Адрес состоит из названия улицы и номера дома. Название улицы и номер дома - это тоже ValueObject-ы
Здание имеет некоторый идентификатор и набор атрибутов, которыми могут быть ссылки на другие сущности, а могут быть значения - например тот же адрес.
А теперь к вашему примеру:
ВО Адресс и в нем есть ВО Дом в котором поля квартира и етаж.
Тоесть получается
Пользователь:
- Адрес:
- - Дом:
- - - Квартира
- - - Этаж
Лично мне кажется, что это неправильная иерархия. Правильнее было бы сделать плоскую структуру.