将图像和文本存储在 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)
我想创建引用 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)