我必须在DB字段(/tmp/aaa/bbbC:\temp\xxx\yyy等)中存储文件路径.我真的不知道他们能活多久.

在给定这个http://en.wikipedia.org/wiki/Comparison_of_file_systems和那个http://msdn.microsoft.com/en-us/library/aa365247.aspx的情况下,根据文件系统的不同,理论上路径可能没有长度限制.

我想把这个领域定义为LONGBLOBVARCHAR(very high value)是不明智的.我考虑过VARCHAR(1024)这样的内容,它应该适用于最常见(即使不是所有)的情况,并且不会像DB字段那样太大.你有什么推荐的吗?

谢谢你.

推荐答案

你可以用VARCHAR(MAX)NVARCHAR(MAX).

这些是可变长度字段,这意味着它们被设计用于存储不同长度的值.与较短的值相比,较长的值没有额外的开销.

定义MAX意味着该字段最高可达2GB.

MSDN(Varchar)开始,nvarchar有类似的文档:

当列数据条目的大小差异很大时,请使用varchar.

当列数据条目的大小差别很大,并且大小可能超过8,000字节时,请使用varchar(Max).

Database相关问答推荐

使用 noSQL 和 MongoDB 在数据库中存储任何类型文件的最佳方法是什么

什么是 CREATE VIEW IF NOT EXISTS in postgresql

当我们需要触发程序的返回值时?

Phonegap如何在android上保存永久数据

这到底是做什么的 Class.forName("com.mysql.jdbc.Driver").newInstance();

更新查询 PHP MySQL

使用 2 个进程处理数据库

ER图中的一对多关系

向表中添加大量索引是否有缺点?

主键、唯一键和外键约束以及索引之间有什么区别?

使用 JSON 作为存储/传输格式的数据库

Select * 和 Select [列出每个列] 之间有区别吗

MySQL 错误 - #1062 - Duplicate entry ' ' for key 2

如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

表格字段可以包含连字符吗?

如何使用 django 判断 postgresql 数据库中是否存在某些内容?

Data Mapper 是不是比 Active Record 更现代的趋势

如何使用 T-SQL 检测 SQL Server 数据库的只读状态?

SqlParameterCollection only accepts non-null SqlParameter type objects, not String objects

如果值不为空,则用于更新数据库的 Sql 查询?