I have worked on two projects, one a Telco Content Management System portal, another an Identity Management System.
Both are customization of products, and both support what you described as extensions of entities. And both store the data as.. an XML strings! (1 of them in database, the other in SVN).
For searching, one of them utilize Lucene, and the other has a table of name/value pair for searching, with optimization for some more frequently used 'fields' defined by the user to be store in the same row as the XML string..
The entity schema are both driven by XML config files.
As a product, I would almost think they are good idea, allowing customization of entities to suit different scenarios. But when I was customizing them, it was just plain.. irritating.
I think it's probably best to approach this from an end user customer point of view.
- Given the ability to extend the entity as they wish, who would be the person extending them? A programmer? A business user?
- Given that you have narrow them down to who will be doing the 'customization', how can you make it a more pleasant experience? Drive the design from usage.
In addition, consider this:
Do you really need an RDBMS for this, or a document-oriented storage like CouchDB will do? IMO a Document-oriented storage seems ideal for extensible entities. But I have not work with them and does not have the necessary data on if they are useful.
Just my 2 cents worth. Hope it helps.