美文网首页Java webspringboot
记账应用数据库设计

记账应用数据库设计

作者: 沙蒿同学 | 来源:发表于2020-11-26 18:42 被阅读0次

github地址

https://github.com/Benny66/db

数据库模型

记账应用数据库设计.png

业务逻辑流程图

业务逻辑流程图.png

sql呈上

/*
 Navicat Premium Data Transfer

 Source Server         : 47.110.227.59
 Source Server Type    : MySQL
 Source Server Version : 50728
 Source Host           : 47.110.227.59:33307
 Source Schema         : simple_bill

 Target Server Type    : MySQL
 Target Server Version : 50728
 File Encoding         : 65001

 Date: 27/11/2020 09:52:22
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for s_bill
-- ----------------------------
DROP TABLE IF EXISTS `s_bill`;
CREATE TABLE `s_bill` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `category_id` int(11) NOT NULL COMMENT '分类id',
  `content` varchar(20) NOT NULL COMMENT '内容',
  `cost` int(11) NOT NULL COMMENT '费用,单位为分',
  `flag` varchar(10) NOT NULL COMMENT '类型:pay=支出,income=收入',
  `week` enum('1','2','3','4','5','6','7') NOT NULL COMMENT '星期:1-7',
  `year` int(4) NOT NULL COMMENT '年份:yyyy',
  `month` int(2) NOT NULL COMMENT '月份:1-12(mm)',
  `day` int(2) NOT NULL COMMENT '日期:1-31(dd)',
  `create_time` datetime NOT NULL COMMENT '创建时间:yyyy-mm-dd HH:ii:ss',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间:yyyy-mm-dd HH:ii:ss',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户记账表';

-- ----------------------------
-- Table structure for s_bill_month_sta
-- ----------------------------
DROP TABLE IF EXISTS `s_bill_month_sta`;
CREATE TABLE `s_bill_month_sta` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `category_id` int(11) NOT NULL COMMENT '分类id',
  `flag` varchar(10) NOT NULL COMMENT '类型:pay=支出,income=收入',
  `month` int(2) NOT NULL COMMENT '月份',
  `year` int(4) NOT NULL COMMENT '年份',
  `cost` int(20) NOT NULL COMMENT '统计费用,单位分',
  `last_cost` int(20) NOT NULL DEFAULT '0' COMMENT '上次统计费用,单位分',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='按分类统计每月记账数据,不包括本月';

-- ----------------------------
-- Table structure for s_bill_real_sta
-- ----------------------------
DROP TABLE IF EXISTS `s_bill_real_sta`;
CREATE TABLE `s_bill_real_sta` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `category_id` int(11) NOT NULL COMMENT '分类id',
  `week` int(2) NOT NULL COMMENT '当前周',
  `week_cost` int(20) NOT NULL COMMENT '当前周费用,单位分',
  `month` int(2) NOT NULL COMMENT '当前月',
  `month_cost` int(20) NOT NULL COMMENT '当前月费用,单位分',
  `year` int(4) NOT NULL COMMENT '当前年',
  `year_cost` int(20) NOT NULL COMMENT '当前年费用',
  `flag` varchar(10) NOT NULL COMMENT '类型:pay=支出,income=收入',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='按分类统计本周本月今年的记账数据';

-- ----------------------------
-- Table structure for s_bill_week_sta
-- ----------------------------
DROP TABLE IF EXISTS `s_bill_week_sta`;
CREATE TABLE `s_bill_week_sta` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `category_id` int(11) NOT NULL COMMENT '分类id',
  `week` int(2) NOT NULL COMMENT '第几周',
  `flag` varchar(10) NOT NULL COMMENT '类型:pay=支出,income=收入',
  `year` int(4) NOT NULL COMMENT '年份',
  `cost` int(20) NOT NULL COMMENT '统计费用,单位分',
  `last_cost` int(20) NOT NULL DEFAULT '0' COMMENT '上次统计费用,单位分',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='按分类统计每周记账数据,不包括本周';

-- ----------------------------
-- Table structure for s_bill_year_sta
-- ----------------------------
DROP TABLE IF EXISTS `s_bill_year_sta`;
CREATE TABLE `s_bill_year_sta` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `category_id` int(11) NOT NULL COMMENT '分类id',
  `year` int(4) NOT NULL COMMENT '年份',
  `flag` varchar(10) NOT NULL COMMENT '类型:pay=支出,income=收入',
  `cost` int(20) NOT NULL COMMENT '统计费用,单位分',
  `last_cost` int(20) NOT NULL DEFAULT '0' COMMENT '上次统计费用,单位分',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='按分类统计每年记账数据,不包括今年';

-- ----------------------------
-- Table structure for s_category
-- ----------------------------
DROP TABLE IF EXISTS `s_category`;
CREATE TABLE `s_category` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `pid` int(11) NOT NULL DEFAULT '0' COMMENT '父id',
  `name` varchar(30) NOT NULL COMMENT '名称',
  `icon` varchar(30) NOT NULL COMMENT '图标',
  `type` varchar(10) NOT NULL DEFAULT '' COMMENT '类型:entertainment=娱乐',
  `flag` varchar(20) NOT NULL DEFAULT '' COMMENT '标示:pay=支出,income=收入',
  `is_delete` int(1) NOT NULL DEFAULT '0' COMMENT '是否删除:1=是,0=否',
  `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态:1=开启,0=未开启',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分类表';

-- ----------------------------
-- Table structure for s_set_user_platform
-- ----------------------------
DROP TABLE IF EXISTS `s_set_user_platform`;
CREATE TABLE `s_set_user_platform` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `type` varchar(10) NOT NULL COMMENT '第三方平台类型',
  `openid` varchar(64) NOT NULL COMMENT '第三方唯一标识',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户关联第三方平台表';

-- ----------------------------
-- Table structure for s_user
-- ----------------------------
DROP TABLE IF EXISTS `s_user`;
CREATE TABLE `s_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `mobile` varchar(20) NOT NULL COMMENT '电话',
  `password` varchar(32) NOT NULL COMMENT '密码',
  `avatar` varchar(255) DEFAULT NULL COMMENT '头像',
  `sex` int(2) NOT NULL COMMENT '性别:1=男,2=女,3=保密',
  `keep_clock_day` int(10) NOT NULL DEFAULT '0' COMMENT '连续打卡天数',
  `bill_day` int(10) NOT NULL DEFAULT '0' COMMENT '记账天数',
  `bill_num` int(10) NOT NULL DEFAULT '0' COMMENT '总记账次数',
  `budget` int(10) DEFAULT NULL COMMENT '预算',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

-- ----------------------------
-- Table structure for s_user_clock
-- ----------------------------
DROP TABLE IF EXISTS `s_user_clock`;
CREATE TABLE `s_user_clock` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `clock_time` datetime NOT NULL COMMENT '打卡时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户打卡记录表';

-- ----------------------------
-- Table structure for s_user_wx
-- ----------------------------
DROP TABLE IF EXISTS `s_user_wx`;
CREATE TABLE `s_user_wx` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `openid` varchar(64) NOT NULL COMMENT '用户唯一标识',
  `nick_name` varchar(100) NOT NULL COMMENT '微信昵称',
  `avatar_url` varchar(200) NOT NULL COMMENT '微信头像',
  `city` varchar(50) NOT NULL COMMENT '城市',
  `province` varchar(50) NOT NULL COMMENT '省份',
  `country` varchar(50) NOT NULL COMMENT '国家',
  `gender` varchar(10) NOT NULL COMMENT '性别',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uni_users_wx_openid` (`openid`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信用户表';

SET FOREIGN_KEY_CHECKS = 1;

相关文章

  • 记账应用数据库设计

    github地址 https://github.com/Benny66/db[https://github.com...

  • 说走就走的旅行,这6个微信小程序你一定需要!

    推荐6个小程序,外出旅游自由行必备! 1、绿豆旅行记账 绿豆旅行记账是一款专门为旅游设计的记账、分账应用,更简单优...

  • 数据库:数据库设计与数据建模及建模工具(PowerDesigne

    数据库设计: 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数...

  • 计算机三级

    1、数据模型:数据结构、数据操作、完整性约束 2、数据库应用系统设计包括 概念设计、逻辑设计、物理设计 3、数据库...

  • PHP学习笔记 - 进阶篇(11)

    数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,...

  • 三、数据库设计

    1.数据库设计概述 1.数据库的生命周期 2.数据库设计的目标 满足应用功能需求:增、删、改、查 良好的数据库性能...

  • PHP 数据库操作

    PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数...

  • PHP 数据库操作

    PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数...

  • 1.11 PHP之数据库操作

    1.PHP支持哪些数据库? PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主...

  • 七、数据库应用设计与开发实例

    以数据库的生命周期为演化主线,数据库应用软件的设计与开发过程可由需求分析、系统功能和数据库的设计、系统功能与数据库...

网友评论

    本文标题:记账应用数据库设计

    本文链接:https://www.haomeiwen.com/subject/ymsziktx.html