2010-12-15 38 views
0

我有一个网站,用户可以将图像与一些关于图像的信息字段一起保存。图像作为二进制数据存储在与图像信息的其余部分相同的表中。到目前为止非常标准。高效地将物料信息和物料数据存储在同一个表中?

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

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

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

我在问这个,因为我真的不知道SQL Server在处理表格时如何处理表格。

我有大约10'000个用户,每个用户最多有10个图像。 (ASP.NET - SQL Server)的
(我不要求如果我应该存储在数据库中的文件,但如何;)

提前感谢!

/zalk

编辑
实施例1:
列imageTable - 编号,标题,dateAdded,图像(二进制数据),文件(二进制数据)

搜索从一个项特定用户我会加入userTable和imageTable并选择标题,其中图像ID等于用户ID。

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

回答

1

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

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