如何存储大型用户特定数据

时间:2015-05-18 12:39:06

标签: mongodb database

所以我正在计划一个小型的Web应用程序,它需要在用户级别上存储大量数据,在一种情况下,系统会从系统级别获取大型对象并制作一个"用户特定"版本,用户可以有多个这些。最简单的方法是将其与存储在谷歌电子表格中的表格进行比较,其中用户需要使用模板电子表格,然后不仅更改答案而且还要更改问题。 安全明智我很好

在第二种情况下,需要在用户特定级别再次存储多个对象,大小约为250k到3mb,并且有可能将其移动到系统级别,以便其他用户可以访问它。例如,假设用户可以上传图片,但可能不想共享所有图片。但是,用户可以选择发布"其中少数是因为他们对这些特定图片感到满意。

我应该考虑使用哪些设计模式专门针对用户拥有大量数据的网络应用?例如,使用单个大型数据库并拥有一个跟踪资源或为每个用户创建单独表的表最有意义吗?

我考虑将它全部放在mongo数据库中。

1 个答案:

答案 0 :(得分:1)

您的方法可能有误。

如果您想存储基于用户的二进制数据并使其可供用户本身或社区访问,您需要一个像这样的层次结构:

  • userid1
    • PIC1,PIC2,pic3的
  • userid2
    • PIC4,图像pic5,图像pic6
  • 社区
    • pic7,PIC8

然后,您可以向"社区"授予读取权限。适用于所有用户,以及每个用户对其自己目录的权限。

如果考虑分区,角色权限和适用的访问数据接口,通常使用数据库存储二进制文件没有任何错误。

我的建议是使用像Artifactory这样的二进制存储库。 它提供了分层结构,使用HTTP请求的简单搜索查询,并具有经常查询的对象的缓存功能。 我还认为http请求更容易使用,并且数据的抽象层也更安全。

Artifactory是免费的。