我正在构建一个Web应用程序,要求我存储有关文件的元数据,每个文件大约有15-20个“特征”,包括一些共享文件(即user1和user2应该有权访问)。
您是否建议使用关系数据库?或者是更新的可扩展的noSQL数据库之一更好的选择?
应该可以快速扩展 - 并允许我们快速读写。
不确定在性能方面如何对关系数据库起作用(比如我试图找到user1拥有的所有文件并共享给具有某种属性的user2--我基本上必须加入3-4桌子在一起......这可能对性能有害吗?!)
感谢您的反馈!
答案 0 :(得分:2)
我不认为加入3或4个表会导致性能不佳。如果您正在考虑开源关系解决方案,我建议PostgreSQL,这是目前最丰富的SQL实现。但MySQL也可以工作,甚至是SQLite。他们都有不错的表现。
另一方面,如果您需要存储的元数据将来会扩展,那么基于模式的数据库将是一件麻烦事。在这种情况下,我会建议一个无架构(也就是基于文档,NoSQL等)的数据库,就像开源MongoDB一样。使用索引,它还具有出色的查询性能。 CouchDB是一个更丰富的实现,但他们并没有太多关注速度。
答案 1 :(得分:1)
我认为关系数据库非常适合这种情况。 NoSQL数据库通常不允许轻松灵活的查询。这是优秀的旧SQL数据库的优势。
答案 2 :(得分:1)
为它们存储文档和一些信息不是SQL数据库的优势 我不会选择MySQL,因为它的许可证(或者更确切地说是数据提供商的许可证),并且因为你不能说甲骨文将来会用它做什么。
您正在寻找一种针对存储文档进行优化的NoSQL数据库,该数据库速度极快且易于设置(和使用)。
我假设一个是用C ++而不是Java编写的,而且非常少用.NET和Java编写绑定。
我想说MongoDB将是理想的选择。
答案 3 :(得分:0)
为什么不使用像我们的svn或hg这样的vcs来为文件分配属性? 这完全取决于您想要对信息做些什么。