我希望有一个类似评论的网站,但不仅仅是评论,其他类型的内容。网站的设计结合了层次结构(每个内容对象/记录/实体都有父 - 一种容器)和关系 - 每个内容对象/记录/实体都有许多相关的其他对象:
最重要的事情之一就是表现。在NoSQL中,关系曾经是效率低下的,因为我已经在网上阅读并且已经尝试过其他项目。另一方面,除了提到的关系之外,一般设计具有明显的内容库,如结构,这是对象(文档,文章,评论)网站的分层排列的精确反映。另外,我真的很喜欢NoSQL中记录的松散结构。然而,我并不关心(也不使用)版本控制等与NoSQL相关的其他事情。
所以我想把两个单词组合在一起:在一个项目中实现层次结构和关系,或者实际上是它的模型。除此之外,我希望项目 restful ,以便移动应用可以使用通过API提供的相同内容。另一个要求是内容应该可搜索。
您会为这样的项目选择什么类型的存储?
答案 0 :(得分:0)
您可以使用以下命令(使用PostgreSQL)轻松地在SQL中建模分层数据结构:
CREATE TABLE comments (
id INTEGER,
parent INTEGER,
content VARCHAR(1024)
)
parent
指的是父评论的id
。
如果您正在使用暴露RESTful接口的NoSQL数据库,您可以考虑CouchDB。 然后,您可以将CouchDB复制到Elasticsearch以进行更强大的搜索。
但如果你的数据是关系数据,那么我建议你首先考虑像PostgreSQL这样的SQL数据库。
答案 1 :(得分:0)
我决定使用Graph DBs。这就是我拒绝其他原因的原因:
图形数据库已经在许多面向内容的项目中使用,并且似乎做得非常好。