[Zope-dev] Folderish or SimpleItem object types for structural
content
Martijn Jacobs
martijn at fourdigits.nl
Wed Nov 30 19:06:52 EST 2005
Hello Dieter.
>This must be a funny classification scheme...
>
>
Well, I wanted to have the discussion to be general about this thing
because I can imagine that this issue has been some point of discussion
before, among others, but I will be more specific to explain :
- The structure will have categories within categories. (hierarchical
categories)
- Each category can have custom properties which can be 'inherited' by
the aqcuisition feature of zope.
- Within the categories you have "object's".
- Each "object" can derive his properties through acquisition, or have
their own properties (or override the acquisiton properties)
- Each "object" will have "item groups", with their own properties /
files / comments / etc.
- Each "item group" will contain "items", each item will have
properties, but also can have properties derived through acquisition
from categories and objects : so these "items" will all have different
properties, depending in which category they exist.
With this rules I was thinking about the next structure :
Category (Object Manager, within other Categories) -> Object (Object
Manager) -> Item Group (Object Manager) -> Item (Simple Item)
>But anyway: I have a completely different strategy for you:
>lets see whether you will like it.
>
>You do not materialize the classification scheme at all but you
>have only your leaves (let's call them "object"s).
>
>Each object has its classification as an attribute, say "category".
>A "category" thus has the form "topic/subtopic/subsubtopc/...".
>
>You index the "category" with a PathIndex (I would recommend
>my "Managable PathIndex") and use canned searches (so called "topic"s)
>the recreate the classification structure via searches (if needed).
>
>
>If you do the last step (use "topic"s for the complete recreation of the
>classification structure), then the number of objects will
>not decrease (what formerly was a classification folder is now
>a "topic"). But the new structure is much more flexible.
>You can now assign different categories (say along different
>dimensions) to your objects and will get different hierarchical (topical)
>views on your object set.
>
>
I have been thinking about this kind of structure to use for this
specific project. But there is a problem that occures (too) often (in my
experience) with this approach. By doing this you really are depending
on the ZCatalog : If some conflict errors occure or for some reason the
objects are not indexed (correctly) or not updated, some important
information is not available for the user. I have experienced alot of
problems with unindexed objects, or not reindexed objects due to
'random' conflict errors'. By making a complete hierarchical structure
using 'Object Managers', you can always assure that data is accessible,
and if the ZCatalog is not up to date, only the search results will not
represent the actual structure.
>30.000 is not yet very impressing.
>
>
That's good to know. It's hard to say offcourse, but what is in some way
a 'limit' of the number of objects, for instance, if they all have to be
indexed? Indexing objects uses ALOT of CPU time for example... In which
amount of objects should you reconsider your design? (Speaking of a
'general' guideline)
>You should take care to use the correct folder implementation, however.
>As soon as a folder is likely to have more than a few dozen of objects,
>you should use a "BTreeFolder2" rather than a normal folder.
>
>
I've used the BTreeFolder2 before for a single folder containing large
number of objects, and indeed, it's really boosting the perfomance a lot...
Well thanks again for your thoughts, it helps in breaking patterns I'm
used too, let's reconsider it using some external input :)
Kind regards,
Martijn.
--
Martijn Jacobs
Four Digits, internet solutions
e-mail: martijn at fourdigits.nl | web: http://www.fourdigits.nl
tel: +31 (0)26 44 22 700 | fax: +31 (0)84 22 06 117
More information about the Zope-Dev
mailing list