【问题标题】:Files and Databases Design文件和数据库设计
【发布时间】:2017-09-07 16:20:14
【问题描述】:

我想托管用户上传到网站的图片。

但是我不知道如何将其存储在网站数据库中。 我知道如何使用 SQL,但是在 SQL 服务器上存储 1mb+ 图像似乎不是一个好主意。

我的问题是:如果您有一个带有上传图片的帐户的系统,您会在 Web 服务器上创建某种文件系统并将其与 SQL 数据库一起使用吗?

例如,在网络服务器上,您将创建一个 /accounts 文件夹,其中包含数千个包含图像文件的文件夹。然后使用 SQL 查询等来查找用户名和相关文件夹?

对不起,如果这是一个愚蠢的问题,我只是不知道要搜索什么来了解有关此类主题的更多信息。

【问题讨论】:

  • 数据库非常擅长存储大量数据/为什么存储 1mb+ 图像会成为问题?
  • 我刚刚读到通过 SQL 存储 JPEG 文件在效率方面是个坏主意。这不是真的吗?
  • 这两种方法都有原因。例如,备份/恢复 - 如果您将图像存储在数据库中,您的备份将包括图像的备份,但您的备份将更大且创建/恢复的时间更长。如果将它们存储在文件系统中,则无需将它们从数据库中提取到某个界面即可访问它们 - 所需的代码更少,但您需要担心孤立记录(数据库中不存在于磁盘上的文件) -这可能很难维护。
  • 我想知道为什么谷歌对某些人没有用..stackoverflow.com/questions/3748/…stackoverflow.com/questions/1347461/…

标签: sql-server database file web


【解决方案1】:

在数据库中存储图像通常是个坏主意。有几种方法可以完成,具体取决于您尝试做的事情的规模。

最简单的管理方法可能是为每个用户创建一个唯一的目录,这样,如果它变得很大,那么您可以将其拆分到许多存储设备、虚拟服务器以及您拥有的任何东西上。然后按用户跟踪数据库中的图像信息。

【讨论】:

  • 简而言之,你会同时使用 SQL 服务器和服务器本地目录,对吧?
  • 是的,因为您可能想要跟踪每个用户拥有的图像。您可以通过使用用户 ID 的外键将图像名称设置为表索引,然后根据您的需要跟踪您可能跟踪的其余图像数据,例如标题、上传日期等,从而减少一些开销。
  • 感谢您的回复!
  • 不客气。请将问题标记为已解决,如果可以,请给它一个赞成票。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 2013-09-01
  • 2010-12-04
  • 2012-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多