Kamna Jain wrote:
> Hi All,
> 
> This question "might" be related to the thread that has been active in the
> past couple of days about the data  model.
> We have a similar situation with the only difference  being that we want to
> create lists or collections (like Groups) of certain pre- created Objects.
> The Object as a whole may/will belong to more than one such collection -
> which means that if we were to use a Document to link a Collection and its
> contents, then every document will have a COPY of the same object and this
> is definitely not desirable for good performance - Right?

Right. Any duplication (except for backup purposes) is bad.

> So, in that case, we have 2 alternatives:
> 1) Use the techiniques used in XWiki to create Groups: each group has
> objects of class XWikiGroup with just one field that refers to the Member
> name.  OR

Yes, this is somehow similar to the Foreign Key concept in databases, so 
it should be a good way to approach your problem.

> 2) Use XWiki.getHashmap() and add the Collection and its members to the
> hashmap (as the Key and Value resp.)
> 
> The XWiki API indicates that the option #2 must be used in xwiki when
> Objects can not be created.
> My Question is:
> -> Even though I could use option #1 and create objects and add them to the
> document that would represent the Collection, can I still use option #2
> because I think that it will provide better performance. Am I right in my
> assumption? What should I do?

#2 is a bit faster, but it does not provide persistence. When the 
current request is over, that hashmap is gone. Given the fact that you 
probably have to store your data in a database, in the end you get 
almost the same performance as #1, but you have to reimplement what the 
XWiki platform already offers.

When using a platform (any platform), you have to get used to the best 
practices of that platform; this is true for XWiki also: although some 
might be used to low level improvements of storage and SQL queries, and 
feel that they know better how queries should be written, XWiki offers a 
simple, high-level data model that should be used. The Google BigTable 
model was also received by some with dismay, since it doesn't follow the 
classical SQL principles.
-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to