代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

在我的asp.net mvc网站上使用用户管理的库的最佳方式是什么

  •  1
  • leora Matt Lacey  · 技术社区  · 14 年前

    我有一个网站,其中一页是一组静态图片。用户希望能够上传自己的图片,并让它显示出来,而不是静态列表。我看到这样的代码解释了 good way to have an upload interface for pictures . 我想知道是否应该将图片存储在我的web服务器文件系统、SQL server数据库或其他地方。

    对这里的最佳实践有什么建议吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Marco Staffoli    14 年前

    在链接处的示例中,您建议程序员使用xml文件。 这个解决方案是上帝为低波段网站和少量的图像。 但是如果两个用户同时尝试上传一个文件会怎么样呢?可能第二个用户会得到一个错误,因为xml文件已经在使用中。

    我建议你把你的 .

    . 你会得到一个非常低效的数据库性能和非常大的规模。

        2
  •  0
  •   xandy    14 年前

    在文件系统中存储更容易实现,您可以利用目录结构。但是,如果您需要的不仅仅是简单的hierachy结构(例如标记),那么很可能需要一个数据库来执行索引(可以是SQL server或XML Dbs)。

    第二个问题来了。如果需要索引,元数据存储在数据库中,那么实际的二进制图像数据呢?将二进制文件放入SQL中很容易维护,但是需要从web服务器实现自定义缓存策略(将图像数据转储到web服务器本地磁盘驱动器),以避免web/db之间的通信量过大。

    另一方面,您只需将密钥保存在db中,并将图像保存在本地磁盘(web服务器)中,这很容易实现,但可能会出现两个问题:

    1. 更难扩展。假设您需要多个web服务器,那么同步这样的内容可能是个问题。

    2. 文件系统索引。如果将文件存储在本地,则很可能所有文件都位于一个文件夹中。对于任何文件系统,存储在一个位置的文件越多,意味着查找或从中获取内容的速度就越慢。一个图像库可以增长到成千上万的文件,这可能会导致问题。(当然,可以使用一些策略来分离存储,但这增加了复杂性)。