[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