0

非常に単純なシナリオ:

class User(Persistent):
  def __init__(self, username, email):
    self.username = username
    self.email = email

メールを一意に保ちながら、User インスタンスをユーザー名で zodb に保存したいと考えています。

u1 = User(username="u1",email="u1@example.com")
zodb_container[u1.username] = u1

このオブジェクトを格納するためのキーとしてユーザー名を使用するため、一意になります。私の質問は、電子メール属性を一意に保つ方法ですか? オブジェクトデータベースでこれを行うエレガントな方法はありますか?

4

1 に答える 1

2

いいえ。

ZODB はやや間違った名前です。Postgres や MySQL のような「データベース」ではありません。制約とクエリ言語を備えたデータベースであり、データベースにあると人々が推測するすべてのものです。代わりに、永続的なオブジェクト ストアです。Python の pickle モジュールが行わないことで ZODB が行うことはありませんが、使用可能なメモリよりも大きな作業セットを管理し、トランザクションを処理し、プロセス間でオブジェクト表現を共有できるようにすることを除きます。それは事実上「スーパーピクルス」です。

したがって、あなたの答えは、ピクルスについて同じ質問をした場合と何ら変わりはありません。

于 2013-01-03T21:08:57.473 に答える