美文网首页
数据库表以及接口设计思路(一)

数据库表以及接口设计思路(一)

作者: 跑者小越 | 来源:发表于2018-01-22 04:12 被阅读135次
    草图

    这里我们先要理解一个基本思想:【收藏夹】本身也可以看做是一个名为【我喜欢的谱子】的谱册。

    几种业务场景

    1. 登陆页面,用github第三方登陆,拿到uid、用户名、头像url,在user表中新建一条uid
    1. 某个登陆用户(uid=007)在单个谱子页面点击收藏,弹出类似下图的页面,列出该用户创建的所有谱册,选择要添加的的谱册(uid、vid、谱子id、谱子title已知,在collection表中新建一条cid)。若之前从未创建过谱册,则点击创建新谱册,输入谱册的名字快速创建谱册(uid、谱册名称已知,在volume表中新建一条vid,默认不公开,默认封面图片),并将该谱子添加进新创建的谱册(uid、vid、谱子id、谱子title已知,在collection表中新建一条cid)。以后可在 单个谱册页面补上谱册简介和谱册封面图片并设置是否公开。
    网易云音乐
    1. 某个登陆用户(uid=007)查看自己或别人的个人页面,此时列出该用户【创建的所有谱册】(volume表中所有uid=007的vid)与该用户【收藏的所有谱册】(所有assistance表中uid=007的aid,再根据vid去volume表中拿到谱册信息),【人气】功能,即谱册被收藏次数(在assistance表中统计该用户创建的所有vid的aid总数)
    网易云音乐
    1. 热门谱册页面,按收藏人数(统计assistance表中每个vid的aid数量)降序列出所有用户的公开谱册,或者按创建时间降序排列。类似可做出伪热门谱子页面(统计collection表中每个谱子id的cid数量)

      网易云音乐
    2. 单个谱册页面 (vid=110),【谱子列表】(列出collection表中所有vid=110的cid);【收藏谱册】的功能(已知uid、vid,在assistance表中添加一条aid),当是自己创建的谱册或已经收藏的谱册时收藏按钮不可用。若是自己创建的谱册,则有【编辑谱册】功能,可以修改volume表中vid=110的谱册的名称、简介、图片、是否公开、选择标签(标签只能从给出的词语中选择,最多选三个),也可删除谱册中的谱子(删除collection表中vid=110、谱子id对应的cid)

      网易云音乐

    谱册思想:让用户能够自己去创建一些个性化的分类,并鼓励与其他用户进行分享

    目前需要用到的接口

    基础功能:

    1. 登陆(github第三方)

      • 在user表中新建一条uid,把获取的用户id,昵称,头像信息都存进去【Create】
    2. 获取用户信息(用户id,昵称,头像,暂不提供修改信息功能)

      • 获取user表中对应uid中储存的信息【Retrieve】
    3. 创建谱册(只输入谱册名称,快速创建,后面再补充其他信息,封面为默认图片,默认不公开)

      • 在volume表中新建一条vid,默认不公开,默认封面图片【Create】
    4. 自己创建的谱册列表(谱册名称、封面图片)

      • 查询volume表中所有uid字段为XXX的条目,获取这些条目中的谱册名称、封面图片字段【Retrieve】
    5. 获取单个谱册信息(谱册名称、简介、封面图片、标签数组、包含的谱子列表)

      • 查询volume表中vid字段为XXX的唯一条目,获取该条目的谱册名称、简介、封面图片、标签数组【Retrieve】
      • 查询collection表中vid字段为XXX的所有条目,获取这些条目的谱子id、谱子title【Retrieve】
    6. 单个谱册信息修改(谱册名称、简介、封面图片、是否公开、标签数组的删除与增加 [ 最多3个标签,可以没有 ])

      • 修改volume表中vid为XXX的唯一条目中的谱册名称、简介、封面图片、是否公开、标签数组等信息【Update】
    7. 往单个谱册中添加谱子

      • 在collection表中添加vid为XXX,谱子id为XXXX,谱子title为X的条目【Create】
    8. 删除单个谱册中的谱子

      • 在collection表中删除vid为XXX,谱子id为XXXX,谱子title为X的条目【Delete】
    1. 删除单个谱册
      • 在collection表中删除vid为XXX的条目【Delete】
      • 在关系表中删除vid为XXX的条目【Delete】
      • 在volume表中删除vid为XXX的条目【Delete】

    进阶功能:

    1. 收藏别人的谱册

      • 在关系表中添加一条vid为XXX,uid为用户自己的条目【Create】
    2. 取消收藏别人的谱册

      • 在关系表中删除vid为XXX,uid为用户自己的的条目【Delete】
    3. 收藏谱册列表

      • 在关系表中查询uid为自己的条目的vid【Retrieve】
      • 在volume表中获取对应vid的谱册名称、封面图片字段【Retrieve】
    4. 热门谱册列表(按收藏人数降序列出所有用户的公开谱册:谱册名称、封面图片、被收藏次数、标签数组)

      • 查询关系表,统计其中每个vid的aid数量(即被收藏次数),按降序排列【Retrieve】
      • 查询volume表中对应vid的信息,获取谱册名称、封面图片、标签数组【Retrieve】
      • 过滤掉非选中标签的其他谱册
    5. 最新谱册列表(按创建时间降序列出所有用户的公开谱册:谱册名称、封面图片、创建时间)

      • 查询volume表中所有公开条目,获取谱册名称、封面图片、创建时间、标签数组,按创建时间降序排列【Retrieve】
      • 过滤掉非选中标签的其他谱册

    接口的问题

    3 创建谱册时,是否要添加关系表,如果添加的话,可以和收藏流程统一,代码可能可以复用

    7 创建用户的时候,可以直接添加一个谱册叫默认谱册,这个用户不指定谱册的收藏都算到这个里,而且这样有利于统一处理流程

    9 删谱册的时候,是否要删除collection里的谱子?还是要归到默认谱册里,而且这里要考虑一个谱子同时加入多个谱册的情况

    相关文章

      网友评论

          本文标题:数据库表以及接口设计思路(一)

          本文链接:https://www.haomeiwen.com/subject/fjycaxtx.html