Re: [Zope] Questions on ZODB BTrees versus bsddb BTrees
"Chris" == Chris Withers <chris@simplistix.co.uk> writes: Chris> 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.
Chris> Ah, okay, you do this with multiple BTrees in Zope, unless you want Chris> to swallow the whole ZCatalog... I think I'll roll my own, at least for now. I don't want to use ZCatalog for the indexing part, at least not yet. The BaseIndex class in src/zope/app/catalog/README.txt of the Zope3 SVN tree illustrates pretty much all I need right now. See, I'm still relying on reading the docs :-) | >> 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. | | Chris> from BTrees.IOBTree import IOBTree | Chris> chris = object() | | Chris> id2user = IOBTree() | Chris> id2user[1234] = chris | | >> is, by the information stored in the key), it may also on occasion want | >> to location people by, say, their name. | | Chris> from BTrees.OOBTree import OOBTree, OOSet | Chris> name2user = OOBTree() | Chris> name2user['chris'] = chris | | Chris> Now, if you have more than one value, you use a set: | | Chris> dan = object() | Chris> age2user = OOBTree() | Chris> age2user[27] = OOSet(chris,dan) Thanks for the code too. Terry
participants (1)
-
Terry Jones