我必须建立一个网站。我问了一些关于模型的问题。我可以选择Postgres和MongoDB。
案例1:Postgres
案例2:MongoDB
我看到的问题
这就是为什么我认为用MongoDB制作网站对我来说更好。但我不确定,我是NoSQL的新手。
我想知道你的想法,什么是最好的解决方案,Postgres或MongoDB?如果它是MongoDB,我需要知道什么?或者也许有些事情让我失去了Postgres。
感谢您的回复。
我希望你能理解我所有的问题。对不起我的英语,我努力做到最好。
答案 0 :(得分:1)
这将取决于时间,如果你没有时间学习其他技术,答案是直接与你认识的人一起解决问题。 如果可伸缩性更重要,那么您必须深入了解您的架构,并且非常了解如何扩展postgresql。
Postgresql可以处理非结构化数据的json列,我使用它并且它很棒。我将在列名称page_structure中有一个包含非结构化数据的表,因此您将拥有一个大的索引表而不是很多一个行表。
相对容易查询您想要的内容,因此不需要单独的图片和视频表格,为了更具体,您需要提供一些方案。
答案 1 :(得分:1)
我认为您正在使用NoSql数据库得出正确的结论,因为您不确定页面的表中的列,这就是您为不同页面创建不同表的原因。我仍然会说让列在记录上有点一致。无论如何,通过使用MongoDB,您可以根据单个集合(SQL中的表)中页面的属性,使用不同的列来创建不同的记录(在MongoDB中称为文档)。如果需要,您可以单独设置图片和视频集合,并使用某些外键(如page_id)将它们与您的页面集合连接起来。或者你可以调用页面集合来获取所有属性,包括一个包含所有视频或图片ID的数组,通过它可以检索特定页面的相应视频和图片,如下图所示,
<强>集合强>
Pages [{id, name, ...., [video1, video2,..], [pic1, pic2, pic78,...]}, id, name, ...., [video1_id, video2_id,..], [pic1_id, pic2_id, pic78_id,...]},...]
Videos [{video1_id, content,... }, {video2_id, content,...}]
Pictures [{pic1_id, content,... }, {pic2_id, content,...}]