我很难为这种用例选择正确的数据库(SQL,NoSQL),即使它很常见。
这是主要记录-
页面: 包含许多字段(将来可能会更改和更新)。 已连接到标签列表(最多可包含50个标签)。 连接到评论部分。
页面记录将通过使用标签来查询。
通常,读取更为重要(因此写入可能会更昂贵),并且可用性应较高。
不选择mongodb样式DB的原因是由于注释部分,因为没有联接,因此注释部分必须嵌入页面中,并且文档大小可能会太大。 另外,MongoDB不太依赖可用性(使用CAP),并且可用性对我很重要。
不选择SQL的原因是因为Page的方案可以更新,并且没有固定的方案。 同样由于标签系统的原因,应该创建另一个关系表,据我了解,这对性能不利。
最好的方法是什么?
问题来源于stack overflow
看一下Postgres,您可以充分利用两者。
Postgres支持jsonb,它允许对jsonb数据类型建立索引,因此您可以通过标签高效地执行您的搜索,或者将它们保留为数组数据类型。
如果您担心注释的嵌入,请链接到另一个表并从一流公民的联接中受益。
在给定用例的情况下,您可以有一个包含主要,知名列和一些指向Authors等的外键,作为数组或jsonb列的标签,jsonb中的某些页面属性以及您的注释在单独的带有外部表的注释表中的Pages表用户和页面的关键。
Mongodb和Postgres都是不错的选择。
附注:我在Mongodb上构建的功能远不止Postgres,但在最近对一个新项目进行评估之后,Postgres给我留下了深刻的印象。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。