是否可以拥有一个没有财产的实体?

时间:2013-01-04 17:26:55

标签: python google-app-engine google-cloud-datastore

我想在Datastore中保留一份“事物”列表。这些“事物”不需要除姓名以外的其他信息,这些名称必须是唯一的,即对于实体,它们可以被视为key_name。在这种情况下,我不需要任何明确的属性/字段用于实体类型(因为'thing'的名称可以保存在实体的key_name内)。这可能吗?怎么样?另一种方法是通过为名称提供专用字段/属性来复制这条信息。

class EntityKindWithNoProperty(db.Model):
    name = db.StringProperty()

我觉得这种方法是重复的信息。你觉得怎么样?

2 个答案:

答案 0 :(得分:3)

这有效

class Empty(ndb.Model):
    pass

e = Empty(id="somestring")
e.put()

对于唯一性,您可以提前生成ID,然后使用numeric keys逐个使用它们。或者,根据您的使用模型,get_or_insert。

答案 1 :(得分:0)

您是否考虑过拥有列表属性的单个实体?

class ThingSingleton(db.Model):
    things = db.StringListProperty()

最佳使用方法取决于您的查询模式和事物的预期基数。