如果我使用TEXT数据类型来存储数字,则会产生任何不良影响

Ahm*_*med 2 sql database postgresql database-design

如果我使用TEXT数据类型在数据库中存储ID号,是否有任何不良影响?我做的事情如下:

CREATE TABLE GenData ( EmpName TEXT NOT NULL, ID TEXT PRIMARY KEY);
Run Code Online (Sandbox Code Playgroud)

实际上,如果我想存储日期值,我通常使用TEXT数据类型.如果这是一种错误的方式,它的缺点是什么?

我在用PostgreSQL.

a_h*_*ame 5

在文本列中存储数字是一个非常糟糕的主意.当你这样做时,你会失去很多好处:

  • 你不能阻止存储无效的数字(例如'foo')
  • 排序不会按照您想要的方式运行('10'比'2'小""
  • 它会让每个看着你数据模型的人感到困惑.

我想存储一个我通常使用TEXT的日期值

这是另一个 非常糟糕的主意.主要是因为您不应该在文本列中存储数字.除了完全错误的日期('foo'),您也无法阻止"无效"日期(例如2月31日).然后有排序的东西,和><,以及日期算术的比较....

  • 所有这些,您的数据表和索引将更大.这将使您的RAM耗尽更快,从而导致更多的磁盘访问和更低的整体性能. (4认同)