[Zope] Questions on ZODB BTrees versus bsddb BTrees

Jonathan dev101 at magma.ca
Thu May 4 07:44:00 EDT 2006


>
>>From the Berkeley DB docs:
>
>    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. 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. Each record's data,
>    however, would likely contain a complex object containing details about
>    people such as names, addresses, phone numbers, and so forth.  While
>    your application may frequently want to query a person by user ID (that
>    is, by the information stored in the key), it may also on occasion want
>    to location people by, say, their name.
>
>    Rather than iterate through all of the records in your database,
>    examining each in turn for a given person's name, you create indexes
>    based on names and then just search that index for the name that you
>    want.  You can do this using secondary databases. In DB, the database
>    that contains your data is called a primary database. A database that
>    provides an alternative set of keys to access that data is called a
>    secondary database. In a secondary database, the keys are your
>    alternative (or secondary) index, and the data corresponds to a primary
>    record's key.
>

This usage scenario can easily be implemented using ZCatalog (as Chris 
mentioned) - check the ZopeBook for info.


Jonathan 



More information about the Zope mailing list