数据库的设计是一个项目的基石,数据库的设计质量直接影响着后期代码开发的进度,所以我们组在本项目数据库设计中考虑了很多。这学期同步进行的数据库课程上老师曾经讲过数据库的设计包括表格设计,视图,存储过程,触发器,用户(权限),索引多个方面,一个项目如果只做了表格那么它的数据库相当于只做了六分之一的任务,所以我们组严格按照数据库设计思路对这六个部分都进行了很多的思考,这篇博文思路也主要分为这六大块。
一,项目简介
首先在讲数据库具体设计前,先简单讲解下我们组的项目,我们组的项目是一个研究型项目,是做一款基于RDF的搜索引擎,项目难度主要集中于算法部分:比如如何将自然语言转换为结构化查询语言SPARQL语句,如何在分布式数据库中查询处理并合并结果等等,而且搜索数据集不是建立在常规的数据库上的,所以我们这个项目的数据库表格仅是为前端页面,权限管理等设计的;接下来简单讲解下我们项目的需求:最开始用户可以在首页选择注册或直接登陆,也可以以游客身份直接进入搜索界面开始输入搜索关键词进行搜索。同时和百度谷歌一样,用户还可以进入查询日志页面查找自己的历史记录,登录用户还可以进入个人中心修改一些个人信息,而管理员可以浏览所有用户的历史记录(这一点主要基于优化搜索算法考虑),还可以操作修改用户权限。
二,表格设计
1)首先我们需要解决刚才需求中讲到的权限管