Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将质量单位(千克和磅)正确地标准化到数据库字段中_Ruby On Rails_Database_Postgresql_Normalization - Fatal编程技术网

Ruby on rails 如何将质量单位(千克和磅)正确地标准化到数据库字段中

Ruby on rails 如何将质量单位(千克和磅)正确地标准化到数据库字段中,ruby-on-rails,database,postgresql,normalization,Ruby On Rails,Database,Postgresql,Normalization,我正在开发一个健身网络应用程序,我想为用户提供在公斤和磅之间来回移动的可能性,以记录他们的健身记录 该应用程序提供了0.25步,这意味着你可以记录25.0、25.25、25.5和25.75公斤和磅 规范化数据库字段中权重数据的正确方法是什么?我正在考虑将其标准化为克,然后将其从克转换为千克或磅。您可能会发现它本身或它的源代码很有用。它的目的是 提供在不同装置中使用重量的便捷方式 系统 至于在DB中存储质量单位,您可以选择任何默认单位(KG或LBS),并在Rails迁移中将其作为十进制字段应用。对

我正在开发一个健身网络应用程序,我想为用户提供在公斤和磅之间来回移动的可能性,以记录他们的健身记录

该应用程序提供了0.25步,这意味着你可以记录25.0、25.25、25.5和25.75公斤和磅

规范化数据库字段中权重数据的正确方法是什么?我正在考虑将其标准化为克,然后将其从克转换为千克或磅。

您可能会发现它本身或它的源代码很有用。它的目的是

提供在不同装置中使用重量的便捷方式 系统


至于在DB中存储质量单位,您可以选择任何默认单位(KG或LBS),并在Rails迁移中将其作为十进制字段应用。

对于单位转换,有几种可用的gem,例如
sy

# after performing gem install sy
require 'sy/imperial'

weights = [ 4.2.kg, 4.3.kg, 4.2.lb, 4.3.lb ]
weights_in_grams = weights.map { |w| w.in :gram }
in_lbs = weights_in_grams.map { |w| w.gram.in :pound } # .in :lb works as well
in_kg = weights_in_grams.map { |w| w.gram.in :kilogram }

最大重量可能会影响你的决定…@JeremyJStarcher我不知道为什么会这样。将30或600千克/磅标准化为克有什么区别?最大数量大小
1200磅
,这是一种罕见但并非前所未闻的重量,最终达到了
544311
。这大于32767带符号的int值,因此将影响后端数据存储选择。根据Posgresql文档,+32767将是
小int
的限制,而
整数将是+2147483647。我错过什么了吗?我正在使用Rails和Postgres,如果这有什么区别的话。没有正确的方法来做错误的事情。如果在存储数据时,您强制用户以这样一个粗略的级别进行取整,即单位依赖于没有良好公因数的单位,那么您不能让他们随意更改该单位,否则将对存储的数字进行散列。但这不是一个数据库问题。