学习笔记4设计用户相关数据库|青训营

120 阅读1分钟

今日实战:流媒体网站--数据库设计、配置文件

API设计:用户

  • 创建(注册)用户:URL: /user Method: POST, SC: 201, 400, 500
  • 用户登录:URL: /user/:username Method: POST, SC: 200, 400, 500
  • 获取用户基本信息:URL: /user/:username Method: GET, SC: 200, 400, 401, 403, 500
  • 用户注销:URL: /user/:username Method: DELETE, SC: 204, 400, 401, 403, 500

goroutine 是非常轻量级的协程,每个协程仅占用4K内存

listen -> RegisterHandlers -> handlers

API设计:用户资源

SC -> Status Code

  • List all videos:URL:/user/:username/videos Method: GET, SC: 200, 400, 500
  • Get one video:URL:/user/:/username/videos/:vid-id Method: GET, SC: 200, 400, 500
  • Delete on video: URL:/user/:username/videos/:vid-id Method: GET, SC: 204, 400, 401, 403, 500

API设计:评论

  • Show comments:URL:/videos/:vid-id/comments Method: GET, SC: 200, 400, 500
  • Post a comment:URL:/videos/:vid-id/comments Method: POST, SC: 201, 400, 500
  • Delete a comment:URL:/videos/:vid-id/comment/:comment-id Method: DELETE, SC: 204, 400, 401, 403, 500

数据库设计:用户

1234TABLE: usersid UNSIGNED INT, PRIMARY KEY, AUTO_INCREMENTlogin_name VARCHAR(64), UNIQUE KEYpwd TEXT

数据库设计:视频资源

123456TABLE: video_infoid VARCHAR(64), PRIMARY KEY, NOT NULLauthor_id UNSIGNED INTname TEXTdisplay_ctime TEXTcreate_time DATETIME

数据库设计:评论

123456TABLE: commentsid VARCHAR(64), PRIMARY, NOT NULLvideo_id VARCHAR(64)author_id UNSIGNED INTcontent TEXTtime DATETIME

数据库设计:sessions

1234TABLE: sessionssession_id TINYTEXT, PRIMARY KEY, NOT NULLTTL TINYTEXTlogin_name VARCHAR(64)