zodbで使用する一般的なオブジェクトクラスを作成します。これらのオブジェクトは、zodbオブジェクトグラフに永続化されると、btreeインデックスに追加されます。
私はこれまで実際にこれを使ったことがありませんが、誰かがこれを行うためのリソースやアドバイスを持っていますか?
オブジェクト参照を処理するときのzodbの能力と優れたインデックス作成戦略により、両方のデータベースの世界を最大限に活用することができました。
他の考えは大歓迎です、ありがとう!
repoze.catalogを見てください:
repoze.catalogは、Pythonのインデックス作成および検索フレームワークです。これはzope.indexに依存しており、その内部のほとんどはzope.app.catalogから取得されます。ただし、zope.app.catalogとは異なり、任意のPythonアプリケーション内のより大きなZopeフレームワークの外部で役立つことを目的としています。
インデックス作成のニーズによって異なりますが、IDによるアクセシビリティだけが必要な場合は、特別なインデックス作成パッケージはおそらく必要ありません。
これらのオブジェクトは、zodbオブジェクトグラフに永続化されると、btreeインデックスに追加されます。
「自分自身を追加する」とは、BTree/インデックスソリューションへの参照を保持していることを意味します。反対側では、「一度それらが配置されたら」について話します。これは、ある種の「それらをDBに入れる」機能を意味します。したがって、次のような方法で、オブジェクトの永続化とインデックス作成を一度に実行することをお勧めします。
def persist_obj(db, obj):
tree = db.root()['mybtree']
id = tree.maxKey() + 1
obj.id = id
tree[id] = obj
データベースのラッパーがある場合、これをwourラッパーのメンバー関数に配置するのが自然な場所です。