Я работал над двумя проектами: один - портал системы управления контентом Telco, другой - система управления идентификацией.
Оба являются настройками продуктов, и оба поддерживают то, что вы описали как расширения сущностей. И оба хранят данные как ... строки XML! (Один из них в базе данных, другой в SVN).
Для поиска один из них использует Lucene, а другой имеет таблицу пары имя / значение для поиска с оптимизацией для некоторых более часто используемых «полей», определенных пользователем для хранения в той же строке, что и XML строка ..
Схема объекта управляется XML-файлами конфигурации.
Как продукт, я бы почти подумал, что это хорошая идея, позволяющая настраивать сущности в соответствии с различными сценариями. Но когда я настраивал их, это было просто .. раздражающе.
Я думаю, что лучше всего подойти к этому с точки зрения конечного пользователя.
- Учитывая способность расширять сущность по своему желанию, кто будет тем, кто расширяет их? Программист? Бизнес-пользователь?
- Учитывая, что вы сузили их до того, кто будет выполнять «настройку», как вы можете сделать его более приятным? Вывести дизайн из использования.
Кроме того, учтите это:
Вам действительно нужна СУБД для этого, или для хранения документов, как CouchDB? IMO Document-ориентированное хранилище кажется идеальным для расширяемых объектов. Но я с ними не работаю и не имею необходимых данных о том, полезны ли они.
Только мои 2 цента. Надеюсь, это поможет.