我应该使用什么样的数据结构来存储文件库..?
我打算有一个上传文件的数据库,我只是想把文件放在我的服务器上,但有一个单独的文本类文件(json,xml等),其中包含所有信息,如名称,描述,标签和学校主题。我知道我可以使用MySQL数据库,但实际上我只是最终通过PHP的json_encode()将结果发送给jQuery jquery ajax调用。我想继续前进,只是存储名称,描述和其他重要(快速访问)信息会更快,如果我已经在xml或json格式...我应该使用什么样的数据结构来存储文件库..?
什么是一些不同的好处我的意图结构?
让我知道,如果我不是很清楚。我相信我很模糊。
您可能会考虑查看像MongoDb,DynamoDB等NoSQL数据库。它们的设计基本上考虑了存储无模式数据(包括JSON结构)的想法。
案例,其中的NoSQL存储解决方案可能是理想的包括:
- 你想储存不适合传统的键值或者关系型数据库结构以及数据(即树的层次结构,数据是在充满变数结构等)
- 您需要能够在数据结构上执行详细搜索/过滤器。如果您只是使用关键值存储或关系数据库来存储序列化的数据结构,这可能非常困难。
- 您需要具备强制执行读/写锁或具有事务支持(即通过典型的平面文件数据序列化方法无法使用的项)的功能。
@pst它增加了存储文档的能力他选择的格式(听起来像JSON中的序列化元数据可能是OP感兴趣的东西),同时仍然为他提供类似数据库的CRUD和查找功能(例如,他不需要通过一堆平面文件搜索记录或设计自己的文件读写锁定机制) – 2013-02-26 00:22:28
非常感谢!这真的很有帮助。有没有特别的你特别喜欢? – user2109258 2013-02-26 00:30:28
@pst我没有将原始问题解释为想知道如何处理二进制文件本身,而是如何存储文件元数据(单独的“文本”文档)。你是正确的,因为这种元数据可以很容易地存储在关系数据库或NoSQL数据库中。这个问题真的成为这种元数据的访问模式之一。数据是否是静态的?如果它得到更新,只需要更新一部分元数据或整个元数据结构?他需要对元数据进行什么样的搜索?这些都是关键问题 – 2013-02-26 00:31:16
您的其他应用程序是否使用数据库? – shapeshifter 2013-02-26 00:15:47
这是范围广泛的方法 - 取决于很多因素,最明显的是您要上传的文件的可能数量以及您想要的主要树形结构是什么?与快速数据库搜索相比,搜索文件最终会变得非常慢。 – BenOfTheNorth 2013-02-26 00:16:28
仅仅因为XML/JSON被用作* web服务*(或半服务)中的* transport *,并不意味着用作*后端*是一个好主意。 – 2013-02-26 00:17:20