我正在尝试了解 Cassandra/Pycassa 数据库设计。
使用Mongoengine,你可以使用“ReferenceField”引用另一个类,如下:
from mongoengine import *
class User(Document):
email = StringField(required=True)
first_name = StringField(max_length=50)
last_name = StringField(max_length=50)
class Post(Document):
title = StringField(max_length=120, required=True)
author = ReferenceField(User)
据我从文档中可以看出,Pycassa 等价物是这样的,但我不知道如何创建从 Post 类作者字段到 User 类的引用:
from pycassa.types import *
from pycassa.pool import ConnectionPool
from pycassa.columnfamilymap import ColumnFamilyMap
import uuid
class User(object):
key = LexicalUUIDType()
email = UTF8Type()
first_name = UTF8Type()
last_name = UTF8Type()
class Post(object):
key = LexicalUUIDType()
title = UTF8Type()
author = ???
做这样的事情的首选方法是什么?显然,我可以将 User 键放在 Post author 字段中,但我希望有更好的方法可以在幕后处理所有这些,例如使用 Mongoengine。