[Zope] Design data-storage / search

Mitch Pirtle mitch.pirtle@kuehne-nagel.com
25 Mar 2002 14:04:31 +0100


On Mon, 2002-03-25 at 13:07, Antwan Reijnen wrote:
> Hi all,
>=20
> I have a design question. I'm using the CMF, but my questions are not spe=
cific for CMF, so I post it in this generic group.
>=20
> I want to construct a CMF content object, which contains a questionary of=
 about 50 questions. Some require a free-text answer, others are multiple-r=
esponse- or singe-response answers. Sometimes a combination is used ("pleas=
e enter your motiviation here").=20
>=20
> The answers of this questionary should be searchable. The standard way (?=
) that comes to my mind is to construct a portal_catalog with a rather larg=
e index of more than 50 keys.
>=20
> But I'm wondering if this is the optimal solution for this kind of data. =
Should I use a database or another kind of datastorage for these kind of da=
ta-structures? Tinytables?
>=20
> Maybe I should construct a special catalog for this, so the portal_catalo=
g does not become inefficient?
>=20
> Any thoughts and experience on this kind of subject is highly appreciated=
.

I am switching from DTML to ZPT/CMF (damn that peer pressure!) and
started originally by dumping all this data in a normalized RDBMS
(postgres).  I have since decided there must be a better way, as
searching (within zope, at least) becomes a "search here first, then
there, then again over there" kind of operation.  Not too efficient.

I too am looking for the Right Way(TM) to do it, and hope this list is
the means for you and I to find out...

But I'm just now coming to grips that everything does not need to be in
a RDBMS!  Oh the horror!  How should we do this in ZODB?  For example,
what if each 'questionnaire' has 500 questions in 5 categories, and each
'questionnaire' can be built from a different/random combination of
categories?  Does this have any impact on how it should be done in ZODB?

--=20

Mitch Pirtle
Corporate Security Officer
K=FChne & Nagel Management AG
Tel: +41 1 786 96 45
Fax: +41 1 786 95 95