我想让用户可以在价格范围内搜索产品。用户应该能够使用任何货币(美元、欧元、英镑、日元、...),无论产品设置什么货币。因此,产品价格为 200USD,如果用户搜索价格为 100EUR - 200EUR 的产品,他仍然可能找到它。如何让它快速有效?
这是我到目前为止所做的。我保存price
,currency code
而calculated_price
这是在欧元(EUR)的价格是默认货币。
CREATE TABLE "products" (
"id" serial,
"price" numeric NOT NULL,
"currency" char(3),
"calculated_price" numeric NOT NULL,
CONSTRAINT "products_id_pkey" PRIMARY KEY ("id")
);
CREATE TABLE "currencies" (
"id" char(3) NOT NULL,
"modified" timestamp NOT NULL,
"is_default" boolean NOT NULL DEFAULT 'f',
"value" numeric NOT NULL, -- ratio additional to the default currency
CONSTRAINT "currencies_id_pkey" PRIMARY KEY ("id")
);
INSERT INTO "currencies" (id, modified, is_default, value)
VALUES
('EUR', …
Run Code Online (Sandbox Code Playgroud)