【问题标题】:what kind of data structure should i use to store file library..? [closed]我应该使用什么样的数据结构来存储文件库..? [关闭]
【发布时间】:2013-02-26 00:13:46
【问题描述】:

我打算有一个上传文件的数据库,我只是要把文件放在我的服务器上,但有一个单独的类似文本的文档(json、xml 等),其中包含所有信息,如名称、描述、标签和学校主题。我知道我可以使用 mysql 数据库,但实际上我只是通过 PHP 的 json_encode() 将结果发送到我的 jquery ajax 调用中。我想继续,如果我已经以 xml 或 json 格式存储名称、描述和其他重要(快速访问)信息会更快...

不同结构对我的意图有哪些好处?

如果我不是很清楚,请告诉我。我确定我很模棱两可。

【问题讨论】:

  • 您的应用程序的其余部分是否使用数据库?
  • 这是一种广泛的方式 - 取决于许多因素,最明显的是您将上传的文件数量以及您想到的主要树结构是多少?例如,与快速数据库搜索相比,搜索文件可能会真的变得很慢。
  • 仅仅因为 XML/JSON 被用作 web-service(或半服务)中的 transport,并不意味着它是用作后端的好主意。
  • 1) 数据库用于用户而不是文件 2) 尽可能多的文件,所以可以说超过一千个 3) 结构最好用作树状层次结构

标签: php jquery html xml json


【解决方案1】:

您可能会考虑研究像 MongoDb、DynamoDB 等 NoSQL 数据库。它们的设计基本上考虑了存储无模式数据(包括 JSON 结构)的思想。

NoSQL 存储解决方案可能是理想的情况包括:

  • 您尝试存储的数据不适合传统的键值或关系数据库结构(即树层次结构、数据在结构上高度可变等)
  • 您需要能够对数据结构执行详细的搜索/过滤。如果您只是使用键值存储或关系数据库来存储序列化数据结构,这可能会非常困难。
  • 您需要能够强制执行读/写锁定或具有事务支持(即,您无法使用典型的平面文件数据序列化方法获得的项目)。

【讨论】:

  • @pst 它增加了以他选择的格式存储文档的能力(听起来像 JSON 中的序列化元数据可能是 OP 感兴趣的东西),同时仍然为他提供类似数据库的 CRUD 和查找能力(例如,他不必通过一堆平面文件来搜索记录或设计自己的文件读写锁定机制)
  • 非常感谢!这真的很有帮助。有没有你特别喜欢的?
  • @pst 我没有将原始问题解释为想知道如何处理二进制文件本身,而是想知道如何存储文件元数据(单独的“类似文本”的文档)。您是正确的,因为这种元数据可以很容易地存储在关系数据库或 NoSQL 数据库中。这个问题真正成为此元数据的访问模式之一。数据一旦写入是静态的吗?如果更新,是只需要更新部分元数据还是整个元数据结构?他需要允许对元数据进行什么样的搜索?这些都是关键问题
  • 你有什么建议,@pst?
  • @pst 你的观点很有道理,原来的答案可能没有足够详细。
猜你喜欢
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 2016-03-06
  • 2013-04-17
  • 2021-02-26
  • 1970-01-01
相关资源
最近更新 更多