[Zope-dev] ZTables and/or Catalog plugable brains?
Jay, Dylan
djay@avaya.com
Mon, 8 Oct 2001 09:30:58 +1000
> -----Original Message-----
> From: Casey Duncan [mailto:c.duncan@nlada.org]
> Sent: Friday, 5 October 2001 10:55 PM
> To: Jay, Dylan; 'zope-dev@zope.org'
> Subject: Re: [Zope-dev] ZTables and/or Catalog plugable brains?
>
>
> On Thursday 04 October 2001 07:34 pm, Jay, Dylan allegedly wrote:
> >
> > I tried using ZClasses but it seems to run slow and take up
> space. Instead
> > I'm using Catalog (without ZCatalog) to contain the data.
> I'm presuming
> > this will be quite efficient (comments welcome).
>
> Yup that should be pretty efficient. Plus you can index and
> query the thing
> fairly easily.
> >
> > Now to my question, How do Catalog plugable brains work?
> I've looked but
> > can't see what the brain class has to look like to work. My
> first attempts
> > don't seem to work. The classes are created but don't
> contain the data. Is
> > the record data passed into the constructor?
>
> I'm not an expert on brains per se, but my understanding is
> that they allow
> you to wrap functionality from a particular class around data
> stored in a
> table (such as a Catalog or an external database) without
> making each record
> an instance of the class.
>
> This is how, when the Catalog returns data, you get the
> getURL and getObject
> methods for each record (among others). TinyTable and Z SQL
> Methods also
> support this functionality, and it is exposed in the
> management interface.
>
> This would allow you to store the actual data as regular
> metadata elements in
> the Catalog, and get objects out when you query it. It would
> avoid storing
> the data twice, once in the objects and again in the metadata
> and all of the
> disadvantages this causes in terms of storage and synchronization.
But what is the API? I understand that for SQLMethods you just have a class
that assumes the existance of attributes that have the same name as you
result fields. I tried doing this with the Catalog code but it seem to
doesn't work. Am I doing it right or the the Catalog brains work
differently?