mysql中按货币类型按实际值订购价格
如果你能帮助我,我将不胜感激。我只想按货币按价格订购产品。有两种类型的数据库 这是第一个数据库中的products表mysql中按货币类型按实际值订购价格,mysql,currency,Mysql,Currency,如果你能帮助我,我将不胜感激。我只想按货币按价格订购产品。有两种类型的数据库 这是第一个数据库中的products表 +----+--------------+-------+-------------+ | id | product_name | price | currency_id | +----+--------------+-------+-------------+ | 1 | X PRODUCT | 11.00 | 1 | | 2 | Y PRODUC
+----+--------------+-------+-------------+
| id | product_name | price | currency_id |
+----+--------------+-------+-------------+
| 1 | X PRODUCT | 11.00 | 1 |
| 2 | Y PRODUCT | 10.00 | 2 |
+----+--------------+-------+-------------+
+----+------+-------+
| id | name | value |
+----+------+-------+
| 1 | USD | 1.00 |
| 2 | EUR | 1.26 |
+----+------+-------+
这是第一个数据库中的货币表
+----+--------------+-------+-------------+
| id | product_name | price | currency_id |
+----+--------------+-------+-------------+
| 1 | X PRODUCT | 11.00 | 1 |
| 2 | Y PRODUCT | 10.00 | 2 |
+----+--------------+-------+-------------+
+----+------+-------+
| id | name | value |
+----+------+-------+
| 1 | USD | 1.00 |
| 2 | EUR | 1.26 |
+----+------+-------+
这是DB结构的第二个选项。只有一张桌子
+----+--------------+-------+----------+
| id | product_name | price | currency |
+----+--------------+-------+----------+
| 1 | X PRODUCT | 11.00 | USD |
| 2 | Y PRODUCT | 10.00 | EUR |
+----+--------------+-------+----------+
我不知道应该使用哪种DB,也不知道如何根据美元的实际价格按价格订购。我认为,最好将价格控制在一种货币之内。如果您需要保留另一种货币,只需为该
usd\u价格创建另一个字段,或创建包含货币价格的整个新表:
产品价格:产品id(整数)、货币id(整数)、价格(双倍)
UPD:为不同货币的实际价格创建方法
def usd_price
price * currency_rates[:usd]
end
使用第一个选项(如果货币更改名称,则使用合成键),您将得到一个简单的连接,以获得正确的顺序
SELECT p.*, value*price adjusted_price
FROM products p
JOIN currency c
ON c.id = p.currency_id
ORDER BY adjusted_price
“调整后的价格”列是调整为美元的价格,然后您就可以按此进行订购。您的意思是我应该在products表中为每种货币创建字段吗?那么我如何在mysql中通过汇率更新它们呢?我想保持更新的汇率,我想按实际价格订购产品。我不知道如何按实际价格查询订单。我是个笨蛋。请给我完整的查询和工作示例:)我找到了一个关于它的线程,但我真的不理解它@实际上,如果你想在数据库中记录所有的价格,你需要找到一种方法,在你的货币汇率发生变化时更新它。我会更新货币表。但是我怎样才能根据美元的实际价格订购产品呢;X产品为11多拉,Y产品为10欧元。当我按价格订购ASC时,第一项必须是X产品。我不知道怎么做。@OğuzCanSertel用一种货币保存您的所有产品,然后在需要时用方法向用户显示另一种货币(并在需要时保留),这就是我想要的。工作起来很有魅力。先谢谢你。