Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
mysql中按货币类型按实际值订购价格_Mysql_Currency - Fatal编程技术网

mysql中按货币类型按实际值订购价格

mysql中按货币类型按实际值订购价格,mysql,currency,Mysql,Currency,如果你能帮助我,我将不胜感激。我只想按货币按价格订购产品。有两种类型的数据库 这是第一个数据库中的products表 +----+--------------+-------+-------------+ | id | product_name | price | currency_id | +----+--------------+-------+-------------+ | 1 | X PRODUCT | 11.00 | 1 | | 2 | Y PRODUC

如果你能帮助我,我将不胜感激。我只想按货币按价格订购产品。有两种类型的数据库

这是第一个数据库中的products表

+----+--------------+-------+-------------+
| 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用一种货币保存您的所有产品,然后在需要时用方法向用户显示另一种货币(并在需要时保留),这就是我想要的。工作起来很有魅力。先谢谢你。