首页 > 解决方案 > SQL 命名列

问题描述

我正在为我的学校项目创建一个表,在其中一个表中,我存储了有关平板电脑的不同规格,在定义这些设备的 CPU 和 RAM 时,您还需要指定测量单位。那么我可以为 CPU 设置一个列名,比如 CPU_Ghz ???? 还是 RAM_GB ???

我这样说是因为我可能想对这些值执行一些查询,而且我知道我可以执行特殊查询来仅提取数字,以防我保存这种格式“4432mah”的信息(我认为不是非常好),但是由于我是从头开始做数据库的,所以可能会像我上面提到的那样保存它??CPU_Ghz ???? 还是 RAM_GB ???电池_mAh??

感谢您的帮助祝您有美好的一天!

标签: sql

解决方案


是的,您最好将单位包含在列名中而不是数据中。通过这种方式,您可以将数据存储为数字,这比将其存储为表示值和单位的字符串具有许多优点:

  1. 每列只存储一个值,这满足 1NF 规则。
  2. 数据库可以强制值的正确性。您只能在正确的范围内存储正确类型的数字。
  3. 所有查询都简单得多。
  4. 您可以通过查看列名来判断测量单位。
  5. 您告诉数据库用户该列的值是一个特定的单位 - 如果您存储了一个字符串,频率可能已存储为 1Ghz 或 1000Khz,您必须分析单位以获得正确的值。
  6. 您可以使用 SUM、AVG 等聚合函数(感谢 Damien!)

推荐阅读