2

我想在 Datastore 中保留一个“事物”列表。对于这些“事物”,除了它们的名称之外不需要其他信息,并且这些名称必须是唯一的,即它们可以被认为是key_name一个实体。在这种情况下,我不需要实体类型的任何显式属性/字段(因为“事物”的名称可以保留在key_name实体内部)。这可能吗?如何?另一种方法是通过为名称指定一个专用字段/属性来复制这条信息。

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

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

4

2 回答 2

3

这有效

class Empty(ndb.Model):
    pass

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

为了唯一性,您可以提前生成 ID,然后使用数字键一一使用它们。或者,根据您的使用模型,get_or_insert。

于 2013-01-04T17:44:59.047 回答
0

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

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

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

于 2013-01-04T17:44:40.280 回答