WEB开发网
开发学院数据库MySQL 针对PHP开发人员的CouchDB基础知识 阅读

针对PHP开发人员的CouchDB基础知识

 2010-10-06 20:43:22 来源:WEB开发网   
核心提示:分布式的、特性丰富、具备双向冲突检测及管理的增量复制, 可查询、可索引、具有一个面向表的报表引擎,针对PHP开发人员的CouchDB基础知识(6),使用 JavaScript 作为引擎的查询语言, 这意味着,CouchDB 亦不是一个面向对象的数据库,它不是什么本地对象、持久数据层供您用作面向对象结构的基础,您可以创建
  分布式的、特性丰富、具备双向冲突检测及管理的增量复制。
  可查询、可索引、具有一个面向表的报表引擎,使用 JavaScript 作为引擎的查询语言。
  这意味着,您可以创建一个能够接受 JSON 文档的 CouchDB 数据库。每个文档均有一个惟一的修订 ID 和自身结构,而且所有文档均存储于同一个扁平的集合内。例如,假设您设置了一个简历集。第一个简历具有的字段包括:名、姓、电话号码、电子邮件地址、Twitter 帐户、特长以及详细的工作经历。而第二个简历则只有名、姓、电子邮件地址以及一个简短的工作经历。这种差异足以使关系型数据库变得非常不适合,但对于 CouchDB,这点差异稀松平常。

简言之,一个 CouchDB 文档就是一个由多个命名字段组成的对象。这些字段的值可以是字符串、布尔值、数字、日期、顺序列表或关联映射。清单 1 展示了一个示例简历文档。

清单 1. 一个简单的 CouchDB 文档


 

  1. {  
  2. "Firstname": "Tom"  
  3. "Lastname": "Myer"  
  4. "Twitter": "@myerman"  
  5. "Email": "tom@example.com"  
  6. "Skills": ["php","couchdb","xml","json"]  
  7. "Work History": ....  
  8. }  

到目前为止,如果您习惯了使用 JSON,那么不会觉得有太大出入。即便您不习惯,您仍然可以将此文档对应成您所熟悉的东西,比如一个 PHP 数组。实际上,您可以将这些内置的 JSON encode/decode 函数用于 CouchDB,或者您也可以选择一种更为面向对象的方式。

为了从一个集合查询信息,您可以通过 RESTful JSON API 使用各种便利的查询方法。使用 JSON 简化了很多问题。还有一点,作为一个熟悉 JavaScript、Ajax 和 JSON 的 Web 开发人员,您无需掌握 SQL 也能完成任务。

在继续之前,最好暂停一下,先来着重强调几点。CouchDB 不是一个关系型数据库。这一点我可能早就说过了,但是它需要反复强调。不要试图以关系型数据库的方式使用 CouchDB,比如插入 ID 字段来帮助理清文档间的关系。与创建关系不同,您需要将想要的内容塞入到文档,然后继续。

此外,CouchDB 亦不是一个面向对象的数据库。它不是什么本地对象、持久数据层供您用作面向对象结构的基础。千万不要这么认为。

上一页  1 2 3 4 5 6 

Tags:针对 PHP 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接