面试题答案
一键面试使用Cassandra集合类型建模思路
在Cassandra中,可以使用集合类型(如 set
)来存储用户的多个兴趣爱好。我们将用户ID作为主键,兴趣爱好以集合的形式存储在对应的列中。这样设计可以方便地查询某个用户的所有兴趣爱好。
CQL语句示例
- 创建表
CREATE TABLE user_hobbies (
user_id UUID PRIMARY KEY,
hobbies SET<TEXT>
);
这里假设 user_id
是UUID类型,如果你使用其他类型(如文本类型等),可相应调整。hobbies
列是一个 set
类型,用来存储文本类型的兴趣爱好。
- 插入数据
INSERT INTO user_hobbies (user_id, hobbies)
VALUES (d8f9a31b-55a5-479b-8855-0a50f0059856, {'reading', 'painting'});
插入了一个用户ID为 d8f9a31b-55a5-479b-8855-0a50f0059856
,并且该用户有 reading
和 painting
两个兴趣爱好的数据。
- 查询数据
SELECT hobbies FROM user_hobbies WHERE user_id = d8f9a31b-55a5-479b-8855-0a50f0059856;
此查询语句会返回指定用户ID对应的所有兴趣爱好。
- 更新数据(添加新的兴趣爱好)
UPDATE user_hobbies
SET hobbies = hobbies + {'traveling'}
WHERE user_id = d8f9a31b-55a5-479b-8855-0a50f0059856;
该语句在指定用户的兴趣爱好集合中添加了 traveling
这一兴趣爱好。
- 删除数据(删除某个兴趣爱好)
UPDATE user_hobbies
SET hobbies = hobbies - {'painting'}
WHERE user_id = d8f9a31b-55a5-479b-8855-0a50f0059856;
此语句从指定用户的兴趣爱好集合中删除了 painting
这一兴趣爱好。