当前位置:   article > 正文

【基于SSH框架的个人博客系统02】项目分析与数据库表设计_ssh框架写按id查询数据库

ssh框架写按id查询数据库

 注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法。例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰。大家学习思想即可,可以不用浪费时间在将这个项目跑起来。目前主流的技术应当是Spring+SpringMVC+Mybatis的SSM框架,配合Shiro做权限控制,Redis做缓存,也可以学习SpringBoot开发微服务。由于本博主已经保研,较少接触开发,故此项目也不再进行维护。

项目分析

搭建完框架,我们就可以开始整个项目了。但在这之前,我们需要为整个项目设计好数据表以及完成需求分析。(当然这一步我是一边开发一边想的…小项目可以这样,大项目的话,最好是先确定好各种需求以及数据表的设计,防止在开发过程中去大规模的更改数据表)。

由于这个项目是一个博客系统,那么基本的登录,注册,文章发布这些都是要的。注册的话,就需要有一个表来储存用户信息,用户的账号密码,生日,省市区,头像(通过储存相对地址来存储,而不是整张头像都放入数据库中)等等。除此之外,我们还要让用户可以自定义标签,根据标签对文章进行分类和显示。那标签就要有对应的创建者。并且标签跟博客之间要有一张表进行关联。同时,每篇博客需要记录它的阅读量,创建日期,文章内容,标题,所属用户等数据。既然是博客,也少不了评论功能。评论的话用一张表就可以存储,需要记录它的时间,创建者,id和父id(用来判断该评论是一条回复还是一条根评论),内容等。那用户怎么到达其他用户的博客呢?这便是粉丝功能的作用。每个人可以关注其他用户以及看到自己被谁所关注,通过这里可以进入他们的博客主页进行浏览。

整个项目的功能基本上就这么多,虽然是个小项目,但也基本上功能完善了..之后我们可以把数据库表设计好之后通过Navicat 来导入。在创建数据库的时候,记得将默认的编码改为UTF-8,否则到时插入中文数据的时候会出现乱码或者显示问号。

 

 

数据库表设计

User表

记录用户id,账号和密码。

 

UserInfo表

记录用户信息。包括用户id,用户昵称,性别,生日,职业,邮箱,省市区id,自我介绍,用户头像,最近登录时间,主页访问量。

 

Place表

记录省市区。

 

Comment表

记录评论。包括id,父id,博客id,所属用户id,内容,日期,是否有回复。

 

Fans表

记录关注情况。包括id主键,userId,noticerid,date。(关系是userId关注noticerId,通过这个关系我们就可以得到粉丝列表和关注列表)

 

Label表

记录标签。包括标签id,标签名称,所属用户id

 

Blog表

记录博客信息。包括博客id,博客标题,内容,所属用户id,创建日期,访问量。

Blog_join_label表是blog和label的连接表,包括id主键,博客id和标签id。(记录博客对应哪个标签,一个博客可能有多个标签,表名是我随便起的…不知道叫什么好)

 

 

创建代码

  1. -- ----------------------------
  2. -- Table structure for `blog`
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `blog`;
  5. CREATE TABLE `blog` (
  6. `blog_id` int(11) NOT NULL AUTO_INCREMENT,
  7. `blog_title` varchar(100) NOT NULL,
  8. `blog_text` text NOT NULL,
  9. `blog_visit` int(11) DEFAULT NULL,
  10. `user_id` int(11) DEFAULT NULL,
  11. `blog_date` date DEFAULT NULL,
  12. `blog_pv` int(11) DEFAULT NULL,
  13. PRIMARY KEY (`blog_id`)
  14. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
  15. -- ----------------------------
  16. -- Table structure for `blog_join_label`
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `blog_join_label`;
  19. CREATE TABLE `blog_join_label` (
  20. `id` int(11) NOT NULL AUTO_INCREMENT,
  21. `blog_id` int(11) DEFAULT NULL,
  22. `label_id` int(11) DEFAULT NULL,
  23. PRIMARY KEY (`id`)
  24. ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
  25. -- ----------------------------
  26. -- ----------------------------
  27. -- Table structure for `comment`
  28. -- ----------------------------
  29. DROP TABLE IF EXISTS `comment`;
  30. CREATE TABLE `comment` (
  31. `id` int(11) NOT NULL AUTO_INCREMENT,
  32. `father_id` int(11) NOT NULL,
  33. `blog_id` int(11) NOT NULL,
  34. `user_id` int(11) NOT NULL,
  35. `content` text,
  36. `date` datetime DEFAULT NULL,
  37. `have_reply` tinyint(1) NOT NULL,
  38. PRIMARY KEY (`id`)
  39. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
  40. -- ----------------------------
  41. -- Table structure for `fans`
  42. -- ----------------------------
  43. DROP TABLE IF EXISTS `fans`;
  44. CREATE TABLE `fans` (
  45. `user_id` int(11) NOT NULL,
  46. `noticer_id` int(11) NOT NULL,
  47. `id` int(11) NOT NULL AUTO_INCREMENT,
  48. `date` date NOT NULL,
  49. PRIMARY KEY (`id`)
  50. ) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8;
  51. -- ----------------------------
  52. -- Table structure for `label`
  53. -- ----------------------------
  54. DROP TABLE IF EXISTS `label`;
  55. CREATE TABLE `label` (
  56. `label_id` int(11) NOT NULL AUTO_INCREMENT,
  57. `label_title` varchar(30) NOT NULL,
  58. `user_id` int(11) NOT NULL,
  59. PRIMARY KEY (`label_id`)
  60. ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
  61. -- ----------------------------
  62. -- Table structure for `place`
  63. -- ----------------------------
  64. DROP TABLE IF EXISTS `place`;
  65. CREATE TABLE `place` (
  66. `place_id` int(11) NOT NULL AUTO_INCREMENT,
  67. `province` varchar(10) DEFAULT NULL,
  68. `city` varchar(10) DEFAULT NULL,
  69. `area` varchar(255) DEFAULT NULL,
  70. PRIMARY KEY (`place_id`)
  71. ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
  72. -- ----------------------------
  73. -- Table structure for `user`
  74. -- ----------------------------
  75. DROP TABLE IF EXISTS `user`;
  76. CREATE TABLE `user` (
  77. `user_id` int(11) NOT NULL AUTO_INCREMENT,
  78. `user_account` varchar(20) DEFAULT NULL,
  79. `user_password` char(32) DEFAULT NULL,
  80. PRIMARY KEY (`user_id`)
  81. ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
  82. -- ----------------------------
  83. -- Table structure for `userinfo`
  84. -- ----------------------------
  85. DROP TABLE IF EXISTS `userinfo`;
  86. CREATE TABLE `userinfo` (
  87. `userinfo_id` int(11) NOT NULL AUTO_INCREMENT,
  88. `user_id` int(11) DEFAULT NULL,
  89. `user_name` varchar(20) DEFAULT NULL,
  90. `user_sex` tinyint(1) DEFAULT NULL,
  91. `user_birthday` date DEFAULT NULL,
  92. `user_job` varchar(20) DEFAULT NULL,
  93. `user_post` varchar(50) DEFAULT NULL,
  94. `user_introduction` text,
  95. `user_place` int(11) DEFAULT NULL,
  96. `user_image` varchar(50) DEFAULT NULL,
  97. `user_recent_login_time` datetime DEFAULT NULL,
  98. `user_PV` int(11) DEFAULT NULL,
  99. PRIMARY KEY (`userinfo_id`)
  100. ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;

 

 

 

----------------------------------------------------------------------------

本项目下载地址:

github:https://github.com/SCAUMankind/SSHBlogSystem

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/185273
推荐阅读
相关标签
  

闽ICP备14008679号