大项目第一天 | 青训营笔记

93 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第八天,前面因为学校期末考等原因搁置了许久,导致项目团队分崩离析QAQ,如今只剩几天,还是尝试一下能否完成大项目的作业。

下面的笔记并非个人创作,而是全组 (虽然只有两个人) 努力的结果。

一、选定方向

看了一眼互动和社交两个方向,时间有限就只考虑一个方向的实现。就难度而言应该是互动的接口更为简单,因为其只是相当于多了两个用户和视频之间的多对多关系,故只要在数据库增加两个对象即可。而社交接口不仅有类似的关注操作,还有在飞书群上常出现问题的聊天系统需要完成。综上考虑,还是选择互动接口进行实现。

image.png

二、数据库建立

同上面所分析的一样,最基础的有用户和视频两个对象,外加赞和评论两个对象,一共四个对象四个表。

用户和视频之间,因为视频需要发布者的信息,所以应该是用户与视频一对多,视频用用户id的外键与用户关联。

赞和评论是抽象对象,代表着“一个用户可以点赞评论多个视频,一个视频也能被多个用户点赞评论”,故其固有属性是用户ID与视频ID的外键。

最后考虑视频与图片的存储,因为数据库中存放的是url,故存储可以考虑本地存储与静态文件托管网站。而时间有限就暂且考虑使用本地存储。

三、Github仓库建立

首先程序demo来自青训营文档:

demo仓库地址:github.com/RaymondCode…

将其复制到本地后,删除.git文件并重新git init即可重新建立git项目。然后在Github上建立好仓库,本地 进行好连接,即可将项目push到远程仓库中。组员则通过协作者的方式共同创作。

四、今天确定的问题

建立好数据库并完成仓库创建后,尝试着写服务层代码,试着使用gorm,紧接着发现数据库对象命名与结构体命名不一致,同时查询的结构体也未定义,单单使用demo预先定义的是不够的。还有就是gorm使用不熟练,很多命令和规范都要进行更细致的查询。

五、明天的目标

争取明天能够熟练一些gorm的基本操作,并且定义好各个查询操作的结构体,完善数据库服务层代码。