Ответ на вопрос о дизайне:
Чтобы связать телефон и место, вы должны использовать дополнительный класс «место» и присвоить атрибут «телефон» классу «место». Экземпляр класса "location" может иметь 2 экземпляра класса "place".
Для этого необходимо иметь еще две таблицы:
- «ссылка»: Id, SourceId, TargetId, RelationId
- "отношение": Id, SourceClassId, TargetClassId, Имя
Btw. Ваша метамодель интересна: она очень гибкая, позволяя объекту принадлежать нескольким классам.
Следовательно, вы можете выразить:
Объект "Арнольд Шварценеггер" относится к классам: Бодибилдер, Иммигрант, Актер, Автор книг, Бизнесмен, Политик.
С другой стороны, у вас нет отношений наследования / подтипа между классами.
Кажется, у вас нет явного объявления типа значения в определении атрибута.