SQL 数据库:只使用字符串好吗?

Rog*_*ger -8 sql database

我目前正在研究一个有很多数据库列的学校项目。我想知道仅使用 TEXT/String 作为数据类型将数据存储在数据库中,然后根据需要检索数据并随后在程序中将其转换为 int、double 或 boolean 是否是一种好习惯,或者我应该已经当我建立我的数据库时,从一开始就选择合适的数据类型?对我来说,只使用字符串似乎更容易,因为它可以轻松编辑。请让我知道你的想法。谢谢你。

Lov*_*ove 5

您希望在数据库中使用正确类型的原因有多种

  • 内存效率:当您只想存储例如整数时,将其存储为字符串将花费更多的数据。常规 int 可以在 4 个字节中存储从 –2147483648 到 2147483647 的任何数字,根据编码、DB、类型等,字符串每个字符占用 1 或 2 个字节(比较mysql intmysql char。您还应该考虑SQL 列是固定的。
  • 转换成本:与字符串相互转换需要更多的代码行和 CPU 周期。
  • 精度损失,例如,如果将浮点数存储为字符串
  • 顺序:字符串数字的排序可能与数字的自然顺序不同,例如字符串“10”在“2”之前。

我还认为索引在适当的类型上会更有效。

如果出于某种原因您想在单个列中存储不同的类型,有些人可能会在 DB 中使用 String 来表示数字等。可能仍然不是很好的做法,因为它是无法想到的更好解决方案的做法。