Простейшей моделью данных было бы дерево, подобное этому:
TABLE Entity (Id, Name, EntityTypeId, ParentEntityId NULL)
TABLE EntityType (Id, Name, ParentEntityTypeId NULL)
В более сложной модели, например, разные модели автомобилей, использующие одну и ту же модель двигателя (и неясно, говорите ли вы о моделях автомобилей или, указав c автомобили), столбец ParentEntityId будет заменен таблицей отношений:
TABLE Entity (Id, Name, EntityTypeId)
TABLE EntityHierarchy (Id, ParentEntityId, ChildEntityId)
Записи в таблице EntityHierarchy будут ограничены (на уровне приложения) деревом EntityTypes
В более сложной модели ParentEntityTypeId также будет заменен на иерархическую таблицу.
Если ваши сущности или их типы меняются со временем, вы также добавили бы диапазон DATE в любую из этих таблиц.