实体Google数据存储区是否可以拥有“空”属性?

时间:2016-06-05 13:11:41

标签: java google-app-engine google-cloud-platform google-cloud-datastore

如果我有一个有A,B和C属性的员工实体,并且有某种员工拥有财产D.哪个更好?

  1. 使两个实体成为员工和d_employee。
  2. 将属性D添加到实体员工中。
  3. 如果我遵循第二个解决方案,我关心的是所有员工实体可能都有冗余属性D(来自关系数据库预期:空行)这是真的吗?我在文档中搜索了一个答案,但目前尚不清楚在这种情况下究竟会发生什么。

1 个答案:

答案 0 :(得分:4)

  
      
  1. 将属性D添加到实体员工中。
  2.   

Google的数据存储区不是基于表格的关系数据库。它将实体存储为单独的“文档”,并且除了具有相同的id类型之外,不要求这些文档以任何方式彼此相似。

没有表模式也意味着您可以执行其他有趣的操作,例如按实体选择性地索引属性。没有列可以设置为索引。

Objectify's polymorphism功能允许在同一个“表”中实现不同类型的数据(或者如果找到一个更好的单词)。如果你不使用objectify,看看它。它也适用于存储具有“可选”字段的简单实体(也没有表约束,所以只需要使null工作)。