2018-05-07 阶梯书包数据库设计,接口设计

表设计:用户购买书包多对多,书包和资源多对多,一个资源对应对多文件表,用户文件表多对多记录观看文件,用户已读资源多对多
user:uid
pack:id,name
res:id,name,author
file(导读资源):id,rid,fid,objcetid,type(类型名称)
user - pack(购买):id,uid,pid,createtime,status
pack - res(包含):id,pid,rid
user - file(已读):id uid,rid,fid,createtime
user-res(已完成):id,uid,rid

需求分析:
用户信息统计:用户id,有效阅读量,总有效字数,总阅读时长,阅读等级(接口),能力维度信息(接口),阅读喜好(接口),班级排名,年级排名,获赞数总数,总读后感数,总优秀读后感数,阅读时段;
阅读任务url+userid(接口):任务总量,任务完成率,必读任务完成率,回答正确率
阅读任务完成情况url+userid(接口):必读任务,自选任务
总测评通过率url+userid(接口):通过率,未通过率

图书-用户:书id,用户id,是否有效阅读,
有效阅读字数(接口),在线阅读时间(接口),有效阅读时间(接口)

图书详情url+bookid(通过接口返回):书id,书名,作者,出版社,封面,简介,图书内容url;

课前引导(url+bookid):所属图书,总数(接口:通过bookid获取所有objectid),已观看数(参数:用户id,bookid;通用查寻用户-引导表-》观看数);
用户-引导表:用户id,课前索引id;

用户-测评表:所属图书,所属用户,是否通过(接口),通过条件,通关时长(接口),测评时间,正确率(接口),剩余机会,难度,题目总数(接口),班级排名(根据过关时长和测评时间排序),答案(接口);已完成人数(查询所有已通过,按测评时间排序)

读后感:标题,内容,所属用户,图片,创建日期,有效状态,审核状态(接口),级别(接口),获赞数(接口),所属图书;类别(根据所属用户机构判断同校区,全网);(总篇数:通过bookid统计读后感)
老师评语(接口):作者,日期,内容,有效性,所属读后感;

讨论url+bookid(接口):获取新话题数,总话题数

统计信息接口:

1根据用户id,时间段获取统计信息

Func:

getUserStatisticsByIdAndTime

Param:

userId 用户主键

startTime 开始时间

endTime结束时间

Return:

{

State:0(error), 1 (success),

Data:{

readingRank(阅读排名):{

classRank(班级排名):{

readingVolumeRank(有效阅读量排名):xx(int),

validWordNumberRank(有效字数排名):xx(int)

},

gradeRank(年纪排名):{

readingVolumeRank(有效阅读量排名):xx(int),

validWordNumberRank(有效字数排名):xx(int)

}

},
readingBehavio(阅读行为):{

readingVolume(有效阅读量(单位:本)):xx(int),

validWordNumber(有效字数(单位:万)):xx.xx(double),


afterReading(读后感数(单位:篇)):xx(int),


theDurationOfRead(阅读时长):  hh:MM,

bestAfterReading(优秀读后感数(单位:篇)):xx(int),

likesAfterReading(读后感获赞量(单位:个)) : xx(int),

TrendOfReading(阅读趋势):[

date(时间):yyyy-mm-dd(startTime),

duration(时长(h)):xx.xx(double)

},

......

{

date(时间):yyyy-mm-dd(endTime),

duration(时长(h)):xx.xx(double)

}

]

},
readingTask(阅读任务):{

planTaskVolume(计划任务量(项)):xx(int),

taskCompletionRate(任务完成率%):xx.xx(double),

completionRateOfRequiredTask(必读任务完成率%):xx.xx(double),

correctAnswerRate(回答正确率%):xx.xx(double),

CompletionOfReadingTask(阅读任务完成情况):{

requiredReadingTask(必读任务完成):xx(int),

selectionReadingTask(选读任务完成):xx(int)

},
AssessmentRate(测评通过率):{

EvaluationThrough(测评通过):xx(int),

EvaluationNotThrough(测评未通过):xx(int)

}

},
readingAbility(阅读能力):{

degree(等级):xx(int),

myAbilityDimension(我的能力维度):

{

informationExtraction(信息提取):xx.xx(double),

wordMastery(词组掌握):xx.xx(double),

imaginationExpansion(想象拓展):xx.xx(double),

reflectionEvaluation(反思评价):xx.xx(double),

enjoyEmpathy(欣赏共情):xx.xx(double),

inductiveReason(归纳推理):xx.xx(double),

}

classAvgAbilityDimension(班级平均能力维度):

{

informationExtraction(信息提取):xx.xx(double),

wordMastery(词组掌握):xx.xx(double),

imaginationExpansion(想象拓展):xx.xx(double),

reflectionEvaluation(反思评价):xx.xx(double),

enjoyEmpathy(欣赏共情):xx.xx(double),

inductiveReason(归纳推理):xx.xx(double),

}

},
readingHobby(阅读爱好):{

literaryStory(文学故事):xx(int),

scientificWisdom(科学益智):xx(int),

historicalCulture(历史文化):xx(int),

socialEncyclopedia(社会百科):xx(int),

humanitiesArt(人文艺术):xx(int)

}

}

}
2. 提交读后感

Func:

submitAfterReading

Param:

readedId:读后感主键

(为空表示新增,不为空表示修改)

title:标题

context:内容

userId:上传用户

Return:

{

result:0(error),

data:{

reason:{

0:标题未填写,

1:标题过长,

2:内容过少,

99:用户无权限

}

}

}

{

result:1(success)

data:{

mes:”新增成功||修改成功”

}

}

3. 上传图片

Func:

upoadImg

Param:

 File

Return:

  {

result:1(success)

data:{

img:{

id(主键):xx,

name(名称):xx,

url(路径):xx,

size(大小):xx

}

}

}

{

Result:0(error)

Data:{

Reason:{

0:图片过大

}

}

}

4. 查看读后感详情

Func:

getAfterReadingById

Param:

readedId:读后感主键

Return:

{

result:1(success),

data:{

afterReading(读后感):{

Title(标题):”《xxx》”,

Context(内容):”xxxxxx”,

type(类别):0(普通),1(优秀),

size(字数): xx(int),

 Likes(点赞数):xx(int),

createTime:yyyy-MM-dd,

power:0(分享,举报),1(编辑,删除,分享)

},

Author(作者):{

id(主键):xx,

Img(头像):url,

name(姓名):xx,

organzied(学校):xx,

},

teacherCommiting(教师点评):{[

{

id(主键):xxx,

name(姓名):xx,

Img(头像):url,

context(内容):xxx,

createTime(创建时间):time

}

...

]}

}

}

{

result:0(error),

data:{

reason:{

0:查询异常

}

}

}

5. 根据id删除读后感

Func:

deleteAfterReadingById

 Param:

readedId:读后感主键

Return:

{

result:1,删除成功

data{}

}

{

result:0,删除失败

data{

reason:{

}

}

}

6. 根据id举报读后感

Func:

reportAfterReadingById

Param:

readedId:读后感主键

Return:

{

 result:1,举报成功

data{}

}

{

result:0,举报失败

data{

reason:{

}

}

}

7. 分页查询读后感

Func:

getAfterReadingPage

Param:

bookId(书籍主键),

Type:类型 全网||本校

currentPage:当前页,

pageSize:每页显示数量,

totalPage:总页数

Return:

{

result:1(success),

data:{

currentPage:xx,

pageSize:xx,

totalPageSize:xx,

afterReadings:[{

id(主键):xx,

title(标题):xx,

abstract(摘要):xxxx,

createTime(创建时间):yyyy-MM-dd,

likes(获赞数):xx,

 type(类别):0(普通),1(优秀),

author:{

Id(主键):xx,

Name(姓名):xx,

Organised(学校):xx

}

},

...

]

}

}

8. 根据用户id和书籍id获取测评信息

Func:

getEvaluationByUseridAndBookid

Param:

Userid用户主键

Bookid书籍主键

Result:

{

result:1(success),

data:{

title(标题):xx,

 Evaluation:{

pass(是否通过):0未通过,1通过,

 difficulty(难度):xx(int),

total(题数):xx(int),

 time(测评时间):yyyy-MM-dd,

 accuracy(正确率):xx.xx(double),

classRank(班级排名):xx(int),

chance(机会):xx(int),

passNum(通过人数):xx(int),

passImg(头像):{

img:url?,

...

 }

,

evaluationUrl(测评地址):url,

Answerurl(答案地址):url

}

}

}

{

result:0(error),

data:{

reason:{

99:用户无权限

}

}

}

9. 根据书籍id获取书籍信息

Func:

getBookbyUseridAndBookid

Param:

userid用户主键

bookid书籍主键

Return:

{
 result:1(success),

data:{

Book:{

  title(题目):xx,

author(作者):xx,

Country(国家):xx,

press(出版社):xx,

abstract(摘要):xx,

img(封面):xx

},

isPurchase(是否购买):0未购,1已购,

Guide(课前引导):{

Pass(通过):xx(int)

Total(总数):xx(int)

}

ReadRank(阅读名次):xx(int)

AfterReading(是否发表读后感):0否,1是

ReadedState(是否完成阅读):0否,1是

Discuss(图书讨论):{

New(新话题):xx(int),

Total(总话题):xx(int),

Url:url?

},

book(图书内容):url?,

 AfterReadingAll(全网读后感):url6,

AfterReadingAll(本校读后感):url6

}

}

10. 获取引导信息

Func

getGuideByUserIdAndBookid

Param

Userid 用户主键

Bookid 书籍主键

Return

{

result:1(success),

data:{

Type:{

Type:{[

{

Objectid(主键):xx,

isLook(是否已观看):0 未观看1观看

}

...

]},

...

}

}

}



你可能感兴趣的:(2018-05-07 阶梯书包数据库设计,接口设计)