SUSTechapplication
SUSTechapplication copied to clipboard
校友数据库 + CMS + 校友地图
参考清华的飞跃手册,用一个数据库(在线表格)来记录校友数据,并链接到飞跃手册和校友地图,这样方便信息查询,也使得没有在飞跃手册发帖的校友也能加入这个生态。
在表格里维护需要的字段,尤其是需要一个 <id> 字段,这样在帖子里我们用元数据 author: <id>,就可以在构建网站的时候通过 API 拉取到所有需要的信息。
参考清华的飞跃手册中的校友数据库 https://feiyue.online
技术栈
至少可以想到这几种技术路线:
- 在线表格,例如 AirTable,或者清华使用的 SeaTable,优点是自带一个前端,可以让校友直接访问,也可以让没有技术背景的同学轻松维护 要不要提供数据库的直接访问权限是可以讨论的
- GitHub 私有仓库中的 CSV 文件,这样本地维护起来也可以用 GUI,缺点是不好存放非结构数据,以及需要自己另外做前端,比较麻烦。
- 纯数据库,比如 Mongo 或者 Postgres,但是这样开发成本比较大
建议采用在线表格方案,需要研究下具体选型。需要免费的长期团队使用。
注意事项
- 不能让数据库公开访问(我不赞同清华的做法),要访问校友目录,需要学校的邮箱进行鉴权。但是飞跃手册帖子能公开访问是没有问题的。
- 要有用户条款,例如访问校友目录只能是个人用途,不得下载、抓取信息以供其他使用等
@JimZhouZZY @LIUBINfighter
关于校友数据库的一些想法,睡前comment下来:
- 在线表格选用 SeaTable,因为便于国内访问,免费功能更多,且有先例。
- 封闭在线表格,给 Maintainer 提供在线表格的读写权限。(Maintainer 不一定有技术背景),给校友读权限(大概可以通过验证 SeaTable 账号注册邮箱实现)。
- 设计问卷/收集表,以收集投稿。同时保留邮件投稿,由 Maintainer 编辑表格的渠道。
此外我想做的还有,
- 后端将在线表格保存在 SQL 数据库中,由 Maintainer 手动触发更新。
- 后端调用 API 查询 SQL 数据库(而非在线表格)
好处在于:
- SQL数据库查询效率更高
- 有了在线表格的协助,Maintainer即使没有很强的技术背景也可以维护SQL数据库
- 有利于以后添加数据相关功能(例如更多的索引、查询甚至AI功能)
坏处在于:
- 咱的工作量增加了
- 几乎无法实现无服务器部署(需要 sql 服务)
@JimZhouZZY
- 我觉得要让用户注册 SeaTable 账号才能访问不是好办法,这个可以再考虑
- 在线表格也有自己的 API,跟直接 query SQL 差别不是很大
- 现在这个小规模应用性能不是问题,易用性更重要
- 赞同使用自己的数据库有利于添加更多功能
- 一样可以无服务器部署,取决于用什么数据库,比如说,Mongo 官方的 Mongo Compass 数据库就是针对无服务器应用的设计的,不需要考虑维护链接池的问题
- 访问权限的问题确实不好解决,先探索一下,如果实在不行再讨论
- 我觉得一个可能的方案是,找一个开源的数据库前端框架,我们自己部署,就可以添加我们自己的鉴权层了。自己写前端不合算,以后维护成本太大
比如这个: https://appflowy.com/docs/self-host-appflowy-overview