来,你们想要的打卡功能

前言 你的世界多数情况下充满了混沌和单调 , 你的身体虽然不胖但并不会让你感觉到那么有力量;你的过往乏善可陈 , 充斥着很多伤心与
自我否定 , 你过往的未来也没有惊喜在场 。 你想要一场新生 , 想要一次脱胎换骨 , 没有行动 , 一切都是空想 , 依旧忍受痛苦与弱小 。 一点
一滴的积累 , 才能感受飞轮转起来时的酣畅淋漓 , 才会有气势如虹的力量, 一点一滴的积累就是需要一个打卡的功能 。
打卡在生活中还是应用挺多的 , 比如上班打卡 , 健身打卡 , 学习打卡...等等
实际上打卡功能开发是挺容易的 , 让我们来一起实现它吧 , 让我们自己用着自己开发的功能吧
为什么写一篇打卡的功能性文章呐?
公司一个系统需要实现的一个小小功能 , 也是为了方便日后进行回顾以及优化 , 特此记录下来 , 话不多说我们来实现它吧 。
数据库设计1 , 为什么要设计数据库

  • 节省数据的存储空间
  • 保证数据的完整性
  • 方便根据数据库进行系统的开发
2 , 根据需求设计数据库
  • 打卡功能
  • 日志表(打卡用户 , 打卡项目编号 , 打卡时间) 这个表中的打卡项目这个字段是非必须的 , 添加这个字段只是为了方便日后的扩展 , 其他两个字段都是必须的
  • 项目表(项目编号 , 项目名称 , 创建时间) 这个表是非必须的 , 只是为了方便日后的扩展 , 可加可不加
  • 统计表(项目编号 , 总打卡数 , 连续打卡数 , 打卡用户 , 打卡时间) 这个表中的字段除了项目编号这个字段不是必须的 , 其他都是必须要的基本字段 ,
  • 我这样设计三张表只是为了方便以后的扩展使用 , 除了项目表 , 其他两张表都是最基础的必须要的
  • 首先创建一个数据库 clockin CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8 COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看) drop database if EXISTS clockin ; create database clockin CHARACTER SET utf8 COLLATE utf8_general_ci;
  • sql 语句如下
DROP TABLE IF EXISTS `clockin_count`;CREATE TABLE `clockin_count` (`id` int(11) NOT NULL AUTO_INCREMENT,`pid` int(11) DEFAULT NULL COMMENT '打卡项目',`sum` int(11) DEFAULT NULL COMMENT '打卡总次数',`cloop` int(11) DEFAULT NULL COMMENT '打卡连续次数',`name` varchar(25) COLLATE utf8_bin DEFAULT NULL COMMENT '打卡人',`dtime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;DROP TABLE IF EXISTS `clockin_log`;CREATE TABLE `clockin_log` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(25) COLLATE utf8_bin DEFAULT NULL COMMENT '打卡人',`pid` int(11) DEFAULT NULL COMMENT '打卡项目',`dtime` datetime DEFAULT NULL COMMENT '打卡时间',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;DROP TABLE IF EXISTS `clockin_project`;CREATE TABLE `clockin_project` (`id` int(11) NOT NULL AUTO_INCREMENT,`pid` int(11) NOT NULL,`project` varchar(25) COLLATE utf8_bin NOT NULL,`dtime` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;3 , 理解清楚数据表之间的映射关系
clockin_log : 日志表 , 存储用户的每天打卡日志信息 , 表的数据更新率比较高 , 特此提出来 , 作为单独的表使用
clockin_project:项目表 , 在什么项目上的打卡 , 不是非必要的 , 只是为了方便日后的扩展使用 , 而添加的