【问题标题】:Efficient storing item info and item data in the same table?在同一张表中有效地存储项目信息和项目数据?
【发布时间】:2011-05-25 20:09:35
【问题描述】:

我有一个网站,用户可以在其中保存图像以及有关图像的几个信息字段。图像作为二进制数据存储在与图像信息的其余部分相同的表中。到目前为止相当标准。

现在,用户应该能够上传文档,更详细地描述图像,以及图像的其余部分及其信息。 每个文档的大小约为 2MB

我的问题是:我应该将此文档(二进制数据)存储在与其余图像相同的表中,还是应该创建一个仅包含文档的新表。图像表中当然会有对文档表中文档的 id 引用。

在搜索图像时,我有一个搜索功能,可以连接几个表,包括图像表。我需要知道这两种解决方案在效率上是否存在差异。
我总是单独获取文档数据,但如果将文档放在单独的表中没有任何好处,我会将其与其余的图像信息放在一起。

我之所以问这个问题,是因为我真的不知道 SQL Server 在连接和搜索表时如何处理表。

我有大约 10'000 个用户,每个用户最多 10 张图片。 (ASP.NET - SQL Server)
(我不是在问是否我应该将文档存储在数据库中,而是如何;)

提前致谢!

/zalk

编辑
示例 1:
imageTable 中的列 - id、title、dateAdded、image(二进制数据)、document(二进制数据)

搜索来自特定用户的项目我将加入 userTable 和 imageTable 并选择 image id 等于用户 id 的标题。

那么,如果文档在 imageTable 中或在自己的 table 中,性能会有什么不同吗?

【问题讨论】:

    标签: asp.net sql join performance


    【解决方案1】:

    关于图像的元信息是关于图像的信息。因此;它应该是同一张表的一部分。如果元数据与图像分开使用,可能会有争议。

    此外,在数据库中存储图像文件的(相对)路径也很常见。这具有额外的优势,即可以静态提供存储图像的路径;而不是从数据库中查询并由 ASP 解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-29
      • 2012-06-21
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2020-07-19
      相关资源
      最近更新 更多