代码之家  ›  专栏  ›  技术社区  ›  Shaun Rowan

需要的一般建议-如何在ASP.NET中实现记录文件附件?

  •  0
  • Shaun Rowan  · 技术社区  · 15 年前

    我有一个应用程序,当初始数据导入完成时,它将有大约25000条记录。这些记录都将有1-3个相关的“文件附件”(.doc、.pdf等)。有人能给我一些关于如何实现这个功能的建议吗?具体来说,您将在哪里存储这些文件,以及如何组织它们?

    我不愿意将它们直接存储在数据库中,因为这将导致一个巨大的数据库。这似乎是一个有效的问题吗?如果是这样,我也不想在一个文件夹中看到多达100000个文件。

    4 回复  |  直到 15 年前
        1
  •  0
  •   Mark Brackett Achilles Ram Nakirekanti    15 年前

    我会根据你想要的做决定 之后和他们一起。

    尺寸不是真正的问题,也不重要。ntfs的最大值是2^32个文件条目,所以10万不会让它出汗。而且SQL开销不会增加200GB的数据量,所以空间不太可能是决定因素。

    对于是否应该存储在数据库中(锁定、可索引/可查询属性、ACID、数据库安全性、已知备份/恢复等),与文件系统(更简单、稍小、已知可以轻松移动到外部存储等)的争论将是决定因素。

        2
  •  3
  •   John Saunders Tony    15 年前

    如果可以使用SQL Server 2008,则它具有“filestream”功能。您可以将列定义为filestream类型,它将文件存储在文件系统上(可能存储在NAS设备上)。然后,您可以自己读取要传递给调用者的数据,或者给调用者文件系统路径,让他们读取该文件。

        3
  •  1
  •   David    15 年前

    将它们存储在文件系统上。(我可以用同样的建议指出数百篇PF文章,根据经验,从长远来看,即使文件很小,你也会过得更好。)

    设置Web应用程序具有读/写权限的文件夹,并创建一个允许用户以任何逻辑结构上载到此文件夹的页面。

    对于DB结构,我将有一个单独的表,仅用于文件附件,其中一个外键指向它们关联的主记录。

        4
  •  0
  •   Cody C    15 年前

    有一群人对在数据库中存储文件的符号感到害怕。如果你是这些人中的一员,你可以采取下面类似的方法。

    创建一个存储与记录关联的所有文件的表。对于每个文件,创建一个唯一的键(我使用guid)与其他文件元数据(文件名、大小、位置、用户、日期等)一起存储在该表中。将文件存储在服务器上。

    这允许您快速查询文件源,并允许您在需要时移动存储库。