使用 Cassandra,您需要先构建一个表来支持您的查询:
SELECT * FROM product
INNER JOIN cart
ON c.item_id = p.id
当然没有任何连接,所以我们必须构建一个表来存储购物车产品数据:
CREATE TABLE cart_product (
product_name TEXT,
product_desc TEXT,
product_price DECIMAL,
product_id uuid,
cart_id uuid,
qty int,
PRIMARY KEY (cart_id,product_id)
);
通过像这样定义我的主键,我确保我的所有行都将由cart_id 存储在一起。因为它是第一个主键,所以它成为 partitioning 键。由于我打算每个购物车拥有多个产品,product_id 需要作为聚类列作为键的一部分以确保唯一性。
插入一些数据后,这工作:
> SELECT product_name,product_price,product_desc
FROM cart_product
WHERE cart_id=93aefdf3-acbf-4d3c-849c-4db9b2ef9e19;
product_name | product_price | product_desc
----------------------+---------------+---------------------------------------------------
Minecraft | 29.99 | Build the future with blocks, and try not to die!
Kerbal Space Program | 29.99 | Blast into space. Now with moar rockets!
Cyberpunk 2077 | 59.99 | Wake up Samurai. We have a city to burn!
(3 rows)