用于关系数据结构的NoSQL数据库

时间:2014-06-02 12:11:01

标签: sql node.js database database-design nosql

我正在创建一个带有angularJS(正面和背面)和nodejs(服务器)的照片库SPA。我问自己应该使用哪种类型的数据库来存储图库/照片:

  • 我将有两个主要课程:PhotoGallery
  • Gallery将包含另一个GalleryPhoto(理论上无限堆叠的图库......)
  • 简单的数据操作,例如,我需要能够轻松地将photo / gallery移动到另一个Gallery,或者需要一个完整的分支(将4个嵌套库的树移动到另一个)

相关的SQL结构:

Photo (photo_id, title, filename, gallery_id) //gallery_id is a foreign key to Gallery table
Gallery (gallery_id, title, parent_id) //parent_id is NULL when no parent (root gallery)

这个数据结构非常简单但很关系,所以使用像NodeJS这样的postgresql这样的SQL数据库就行了。

如何使用像mongoDB这样的noSQL数据库来构建它? (也许我的关系结构数据完全没有问题?)

传统的关系型SQL数据库更适合这种情况吗?

由于

2 个答案:

答案 0 :(得分:1)

使用mongoDB来保持嵌套结构,因为它可以将索引编入n级并启用对这些索引的查询。

答案 1 :(得分:0)

以下是将记录插入名为photogallery的集合中的示例。 您无需预先创建集合。

db.photogallery.insert(
{
 photo_id: "1",
 phototitle: "phototitle",
 filename: "filename",
 gallery: {
    gallerytitle: "gallerytitle",
    parentgallery: "parentgallery"
 }
}
)