zodb中的唯一键/属性/属性

时间:2013-01-03 04:29:10

标签: zodb object-oriented-database

非常简单的Senario:

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

我想在用户名中将用户实例存储在zodb中,同时保持电子邮件的唯一性。

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

我使用用户名作为密钥来存储此对象,因此它将是唯一的。我的问题是如何保持电子邮件属性的独特性?在对象数据库中有没有优雅的方法呢?

1 个答案:

答案 0 :(得分:2)

没有

ZODB有点名不副实。它不像Postgres这样的“数据库”,MySQL是一个拥有约束和查询语言的数据库,以及人们假设数据库具有的所有东西。相反,它是一个持久对象存储。除了管理大于可用内存的工作集,处理事务以及允许您在进程之间共享对象表示之外,ZODB没有为您做的事情,Python的pickle模块不会为您做什么。它实际上是“超级”。

所以你的答案与你提出的关于泡菜的问题完全无关。