0

我是使用非关系数据存储(如 scriptDB)的新手。将数据嵌套在要存储的对象中会有什么好处?形成 scriptDB 教程......为什么,

{type: "employee",
  employee_id: 1,
  name: {first: "Fatima", initial: "S", last: "Pauli"},

而不是这个,

{type: "employee",
  employee_id: 1,
  first: "Fatima", 
  initial: "S", 
  last: "Pauli",

似乎非嵌套结构会更简单、更小且更易于访问。我错过了什么???

4

1 回答 1

1

您没有遗漏任何东西——它只是一个示例,它说明了对象存储模式设计中的功能而不是最佳实践。

有几件事要记住。

  1. 在上面的例子中——因为我们只是通过employee_id 进行查询,所以name 是一个复杂对象这一事实根本不会影响查询。所以我们还不如在那里嵌套一个对象,我们可以在以后添加更多属性并让它自包含。

  2. 大小在这里应该无关紧要(可能是一个对象的几个字节)。考虑一个对象中有多少数据,而不是它的结构或属性名称的微小差异。

  3. 您最终将存储对象 - 因此您希望确保您检索的对象易于使用点表示法。

因此,您必须根据查询对象的方式及其自然形状的外观来了解代码中的意义。

使用文档/对象存储确实需要稍微改变思维 - 规范化原则并不真正适用。如果您仍然喜欢使用 SQL - Apps 脚本确实具有JDBC 连接器,并且最近添加了Cloud SQL的支持

于 2012-11-19T12:39:21.987 回答