将图像和文本存储在 SQL 服务器的单列中

Store both Image and Text in single column in SQL Server

我想创建引用 table,以存储键值对。

Id
Key
Value

问题是,我需要将文本和图像都存储为值,哪种数据类型更合适。大多数情况下请参考 Varbinary。但我需要知道哪一个是最好的。

谢谢!

您必须使用 varbinary(max) 除非您将图像编码为 base 64

Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format

如果不能't/won,则需要将文本数据转换为 varbinary(max)

这回答了您的实际问题,但没有解决您的问题

  • 您如何知道列中存储的是什么类型?
    您需要一个额外的列来存储 "type"
  • 您打算search/export将文本存储在数据库中的varbinary中吗?
    很多额外的工作

key-value table 结构表明 EAV 设计带来了很多其他问题。

正确答案:

  • 为每种类型的数据单独 tables
  • 单独的 varchar 和 varbinary 列

如果将它们存储为单独的 字段 列会怎么样?

Id bigint, Key varchar(50), ValueBlob varbinary(max),ValueString varchar(max)