Joh*_*ren 6 sql-server sqldatatypes
为什么每个RDBMS都坚持要告诉它文本字段的最大长度是什么...为什么它不能只是将这些信息从放入数据库的数据中推断出来?
我主要使用MS SQL Server,但我知道的每个其他数据库也要求您在数据模式上设置这些任意限制.实际情况是,由于业务需求一直在变化,而且几乎每天都有一些最终用户试图将大量文本放入该列,因此这并不是特别有用或友好的.
是否有任何具有RDBMS内部工作知识的人知道为什么我们只是不推断存储数据的限制?我不是在猜测类型信息,而是猜测特定文本列的限制.
我的意思是,我没有在数据库中的每个文本列上使用nvarchar(max).
因为计算机(和数据库)是愚蠢的.计算机不能很好地猜测,除非你告诉他们,否则他们无法分辨出一列将被用于电话号码或战争与和平的副本.显然,数据库可以设计成每列可以包含无限量的数据 - 或者至少与磁盘空间允许的数据一样多 - 但这将是一个非常低效的设计.为了提高效率,我们进行权衡,让设计师告诉数据库我们希望在列中放多少.据推测,可能存在默认值,因此如果您未指定默认值,则只需使用它.不幸的是,从效率的角度来看,任何违约都可能不适合绝大多数人.
| 归档时间: |
|
| 查看次数: |
1613 次 |
| 最近记录: |