Well, mid, next month we're going to start using dynamic fields as the relate to our business rules. Basically, in involves have a basic set of objects in code/database, and flattened for search in Solr. The MAIN business object is to be extendable by the custoemer, will still having to supply the required fields in the base object. We will use defined type, dynamic fields
I had a question for those more experienced than I. We are thinking about two possible usage patterns: A/ User can add any field they want, as long as they use the right suffix for the field. Changing the schema can be done at will, and updating past objects is totally on the user. They get: 1/ Find within the field. 2/ Range queries 3/ other future, single field functionality later 4 B/ User can NOT add any field they want, but they must submit a schema, hopefully automated. The data still goes into the Solr index as dynamically accepted fields as long as they use the right suffix for the field. Changing the schema can be done at by submitting the new schema. Updating past objects is STILL totally on the user. They get: 1/ Find within the field. 2/ Range queries 3/ Various filter functions like: mandatory fields, acceptable ranges, minimum lengths on strings, and other processing. 4/ Other future, single field functionality later 5/ The ability to make their own copyfields for 'grouping' of their own fields. 'A' I see as most simple to administer, but possible has security holes? THAT's my main question, all thoughts welcom. 'B' is better as a value added service, but has a LOT more work on our site's end, I believe. We could also possibly do non acceptance of sensitive field names for security? Any thoughts much appreciateed. Dennis Gearon Signature Warning ---------------- It is always a good idea to learn from your own mistakes. It is usually a better idea to learn from others’ mistakes, so you do not have to make them yourself. from 'http://blogs.techrepublic.com.com/security/?p=4501&tag=nl.e036' EARTH has a Right To Life, otherwise we all die.