Terry Jones wrote:
    Usually you find database records by means of the record's key.
    However, the key that you use for your record will not always contain
    the information required to provide you with rapid access to the data
that you want to retrieve.

Ah, okay, you do this with multiple BTrees in Zope, unless you want to swallow the whole ZCatalog...

For example, suppose your database contains
    records related to users. The key might be a string that is some unique
identifier for the person, such as a user ID.

from BTrees.IOBTree import IOBTree

chris = object()

id2user = IOBTree()
id2user[1234] = chris

    is, by the information stored in the key), it may also on occasion want
    to location people by, say, their name.

from BTrees.OOBTree import OOBTree, OOSet

name2user = OOBTree()
name2user['chris'] = chris

Now, if you have more than one value, you use a set:

dan = object()
age2user = OOBTree()

age2user[27] = OOSet(chris,dan)

Although, to be honest, if you're doing all this, you'll likely get more milleage out of the zcatalog than rolling it all yourself...



Simplistix - Content Management, Zope & Python Consulting
           - http://www.simplistix.co.uk

Zope maillist  -  Zope@zope.org
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to