Yesod/Persistent 存储比率的最佳方式

Yesod/Persistent best way to store a Ratio

我一直在考虑如何利用 Ratio 类型的好处来避免像货币计算那样失去精度,在我看来这是一个相当合理的方法。 我的问题是,考虑到我的后端将是 MySQL,将它与 Persistent 一起使用的好方法是什么?我考虑过将其保存为 varchar,然后将其传递给函数以获取比率,但我认为这可能是更好的方法。

假设您有办法存储您用作 Ratio 后端的任何数字类型,您可以使用以下三个函数将 "serialize" a Ratio a 放入其组成部分a 值和返回值:

(%) :: Integral a => a -> a -> Ratio a
numerator :: Integral a => Ratio a -> a
denominator :: Integral a => Ratio a -> a