以标准化方式表示维度单位

Ste*_*ini 4 database standards units-of-measurement

假设您要写入数据库中的东西长30米,或50英尺,或温度为50开尔文,速度为每小时50公里.你会如何代表这些单位?

澄清两点:

  • 任何类型的单位,而不是预定义的,明确定义的单位.
  • 我的问题更多地与单位本体论的存在有关.我接受了数据库示例,因为它是我第一次想到的,但是用XML或JSON表示单位的场景同样可能.

Bil*_*win 6

关系数据库设计的基本概念之一是给定列中的所有值应表示某些逻辑兼容的数据类型.在形式上,列只有一种类型,并且类型中的任何两个值都可以在等式谓词中相互比较.这是类型理论的关键部分.

因此,如果测量结果不具有可比性,即长度与温度的关系,则不应将它们存储在同一列中.

您可能希望查看ISO 2955,"信息处理 - SI和其他单位在具有有限字符集的系统中的表示".

另请参阅" Joe Celko的SQL编程风格 ",第4章,比例和测量.