这里我们先要理解一个基本思想:【收藏夹】本身也可以看做是一个名为【我喜欢的谱子】的谱册。
几种业务场景
- 登陆页面,用github第三方登陆,拿到uid、用户名、头像url,在user表中新建一条uid
- 某个登陆用户(uid=007)在单个谱子页面点击收藏,弹出类似下图的页面,列出该用户创建的所有谱册,选择要添加的的谱册(uid、vid、谱子id、谱子title已知,在collection表中新建一条cid)。若之前从未创建过谱册,则点击创建新谱册,输入谱册的名字快速创建谱册(uid、谱册名称已知,在volume表中新建一条vid,默认不公开,默认封面图片),并将该谱子添加进新创建的谱册(uid、vid、谱子id、谱子title已知,在collection表中新建一条cid)。以后可在 单个谱册页面补上谱册简介和谱册封面图片并设置是否公开。
- 某个登陆用户(uid=007)查看自己或别人的个人页面,此时列出该用户【创建的所有谱册】(volume表中所有uid=007的vid)与该用户【收藏的所有谱册】(所有assistance表中uid=007的aid,再根据vid去volume表中拿到谱册信息),【人气】功能,即谱册被收藏次数(在assistance表中统计该用户创建的所有vid的aid总数)
-
热门谱册页面,按收藏人数(统计assistance表中每个vid的aid数量)降序列出所有用户的公开谱册,或者按创建时间降序排列。类似可做出伪热门谱子页面(统计collection表中每个谱子id的cid数量)
网易云音乐
-
单个谱册页面 (vid=110),【谱子列表】(列出collection表中所有vid=110的cid);【收藏谱册】的功能(已知uid、vid,在assistance表中添加一条aid),当是自己创建的谱册或已经收藏的谱册时收藏按钮不可用。若是自己创建的谱册,则有【编辑谱册】功能,可以修改volume表中vid=110的谱册的名称、简介、图片、是否公开、选择标签(标签只能从给出的词语中选择,最多选三个),也可删除谱册中的谱子(删除collection表中vid=110、谱子id对应的cid)
网易云音乐
谱册思想:让用户能够自己去创建一些个性化的分类,并鼓励与其他用户进行分享
目前需要用到的接口
基础功能:
-
登陆(github第三方)
- 在user表中新建一条uid,把获取的用户id,昵称,头像信息都存进去【Create】
-
获取用户信息(用户id,昵称,头像,暂不提供修改信息功能)
- 获取user表中对应uid中储存的信息【Retrieve】
-
创建谱册(只输入谱册名称,快速创建,后面再补充其他信息,封面为默认图片,默认不公开)
- 在volume表中新建一条vid,默认不公开,默认封面图片【Create】
-
自己创建的谱册列表(谱册名称、封面图片)
- 查询volume表中所有uid字段为XXX的条目,获取这些条目中的谱册名称、封面图片字段【Retrieve】
-
获取单个谱册信息(谱册名称、简介、封面图片、标签数组、包含的谱子列表)
- 查询volume表中vid字段为XXX的唯一条目,获取该条目的谱册名称、简介、封面图片、标签数组【Retrieve】
- 查询collection表中vid字段为XXX的所有条目,获取这些条目的谱子id、谱子title【Retrieve】
-
单个谱册信息修改(谱册名称、简介、封面图片、是否公开、标签数组的删除与增加 [ 最多3个标签,可以没有 ])
- 修改volume表中vid为XXX的唯一条目中的谱册名称、简介、封面图片、是否公开、标签数组等信息【Update】
-
往单个谱册中添加谱子
- 在collection表中添加vid为XXX,谱子id为XXXX,谱子title为X的条目【Create】
-
删除单个谱册中的谱子
- 在collection表中删除vid为XXX,谱子id为XXXX,谱子title为X的条目【Delete】
- 删除单个谱册
- 在collection表中删除vid为XXX的条目【Delete】
- 在关系表中删除vid为XXX的条目【Delete】
- 在volume表中删除vid为XXX的条目【Delete】
进阶功能:
-
收藏别人的谱册
- 在关系表中添加一条vid为XXX,uid为用户自己的条目【Create】
-
取消收藏别人的谱册
- 在关系表中删除vid为XXX,uid为用户自己的的条目【Delete】
-
收藏谱册列表
- 在关系表中查询uid为自己的条目的vid【Retrieve】
- 在volume表中获取对应vid的谱册名称、封面图片字段【Retrieve】
-
热门谱册列表(按收藏人数降序列出所有用户的公开谱册:谱册名称、封面图片、被收藏次数、标签数组)
- 查询关系表,统计其中每个vid的aid数量(即被收藏次数),按降序排列【Retrieve】
- 查询volume表中对应vid的信息,获取谱册名称、封面图片、标签数组【Retrieve】
- 过滤掉非选中标签的其他谱册
-
最新谱册列表(按创建时间降序列出所有用户的公开谱册:谱册名称、封面图片、创建时间)
- 查询volume表中所有公开条目,获取谱册名称、封面图片、创建时间、标签数组,按创建时间降序排列【Retrieve】
- 过滤掉非选中标签的其他谱册
接口的问题
3 创建谱册时,是否要添加关系表,如果添加的话,可以和收藏流程统一,代码可能可以复用
7 创建用户的时候,可以直接添加一个谱册叫默认谱册,这个用户不指定谱册的收藏都算到这个里,而且这样有利于统一处理流程
9 删谱册的时候,是否要删除collection里的谱子?还是要归到默认谱册里,而且这里要考虑一个谱子同时加入多个谱册的情况
网友评论