【发布时间】:2018-01-02 14:20:37
【问题描述】:
用户创造新客户。客户拥有产品订阅。
user
========
user_id
name
customer
========
customer_id
user_id
name
subscription
========
customer_id
product_id
我有一个产品表,其中存储所有用户的“主”定价:
product
========
product_id
name
price
但我可以为某些用户覆盖部分或全部产品的价格。
user_price
========
product_id
user_id
price
我正在为需要产品价格/覆盖价格的表订阅编写触发器。由于覆盖的价格基于 user_id 但我没有将 user_id 存储在此表中,我如何编写一个语句,根据为此订阅设置的 customer_id 从客户表中检索 user_id 然后检索正确的价格?
SELECT `price`
FROM `product` p
LEFT JOIN `user_price` u
ON u.`user_id` = ???? AND u.`product_id` = NEW.product_id
INTO var_product_price;
我的设计效率如何?我应该保持这样还是开始将 user_id 存储在订阅中。 ?
【问题讨论】: