重头开始设计一个系统吧-数据表设计

数据库部分结构设计

  • base库
/*
Navicat MySQL Data Transfer

Source Server         : root
Source Server Version : 50717
Source Host           : localhost:3306
Source Database       : sys_base

Target Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001

Date: 2017-07-09 00:28:34
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for base_common_area
-- ----------------------------
DROP TABLE IF EXISTS `base_common_area`;
CREATE TABLE `base_common_area` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `area_code` varchar(255) NOT NULL COMMENT '地区编码',
  `area_name` varchar(255) DEFAULT NULL COMMENT '地区名称',
  `parent_code` varchar(255) DEFAULT NULL COMMENT '父级编码',
  `postcode` varchar(255) DEFAULT NULL COMMENT '邮编 ',
  `area_type` varchar(255) DEFAULT NULL COMMENT '地区类型 省市区',
  `area_status` varchar(255) DEFAULT NULL COMMENT '地区状态',
  `area_remark` varchar(255) DEFAULT NULL COMMENT '地区备注',
  PRIMARY KEY (`id`,`area_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通用地区数据';

-- ----------------------------
-- Records of base_common_area
-- ----------------------------

-- ----------------------------
-- Table structure for base_common_platform
-- ----------------------------
DROP TABLE IF EXISTS `base_common_platform`;
CREATE TABLE `base_common_platform` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `platform_code` varchar(255) NOT NULL,
  `platform_name` varchar(255) DEFAULT NULL,
  `platform_status` varchar(255) DEFAULT NULL,
  `platform_remark` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`,`platform_code`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='通用系统平台数据';

-- ----------------------------
-- Records of base_common_platform
-- ----------------------------
INSERT INTO `base_common_platform` VALUES ('1', 'phone-android', '手机-安卓', 'on', '手机-安卓');
INSERT INTO `base_common_platform` VALUES ('2', 'phone-ios', '手机-苹果', 'on', '手机-苹果');
INSERT INTO `base_common_platform` VALUES ('3', 'phone-win', '手机-win', 'on', '手机-win');
INSERT INTO `base_common_platform` VALUES ('4', 'pad-android', '平板-安卓', 'on', '平板-安卓');
INSERT INTO `base_common_platform` VALUES ('5', 'pad-ios', '平板-苹果', 'on', '平板-苹果');
INSERT INTO `base_common_platform` VALUES ('6', 'pad-win', '平板-win', 'on', '平板-win');
INSERT INTO `base_common_platform` VALUES ('7', 'pc-android', '电脑-安卓', 'on', '电脑-安卓');
INSERT INTO `base_common_platform` VALUES ('8', 'pc-ios', '电脑-苹果', 'on', '电脑-苹果');
INSERT INTO `base_common_platform` VALUES ('9', 'pc-win', '电脑-win', 'on', '电脑-win');

-- ----------------------------
-- Table structure for base_common_role
-- ----------------------------
DROP TABLE IF EXISTS `base_common_role`;
CREATE TABLE `base_common_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_code` varchar(255) NOT NULL COMMENT '角色编码',
  `role_name` varchar(255) DEFAULT NULL COMMENT '角色名称',
  `role_status` varchar(255) DEFAULT NULL COMMENT '角色状态',
  `role_remark` varchar(255) DEFAULT NULL COMMENT '角色备注',
  PRIMARY KEY (`id`,`role_code`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='通用角色数据';

-- ----------------------------
-- Records of base_common_role
-- ----------------------------
INSERT INTO `base_common_role` VALUES ('1', 'admin', '系统管理员', 'on', '系统管理员');
INSERT INTO `base_common_role` VALUES ('2', 'user', '前台用户', 'on', '前台用户');

-- ----------------------------
-- Table structure for base_common_status
-- ----------------------------
DROP TABLE IF EXISTS `base_common_status`;
CREATE TABLE `base_common_status` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `status_code` varchar(255) NOT NULL COMMENT '状态编码',
  `status_name` varchar(255) DEFAULT NULL COMMENT '状态名称',
  `status_remark` varchar(255) DEFAULT NULL COMMENT '状态备注',
  PRIMARY KEY (`id`,`status_code`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='通用状态数据';

-- ----------------------------
-- Records of base_common_status
-- ----------------------------
INSERT INTO `base_common_status` VALUES ('1', 'on', '有效', '有效状态(可用状态)');
INSERT INTO `base_common_status` VALUES ('2', 'off', '无效', '无效状态(不可用状态)');

-- ----------------------------
-- Table structure for base_user_gender
-- ----------------------------
DROP TABLE IF EXISTS `base_user_gender`;
CREATE TABLE `base_user_gender` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `gender_code` varchar(255) NOT NULL COMMENT '性别编码',
  `gender_name` varchar(255) DEFAULT NULL COMMENT '性别名称',
  `gender_status` varchar(255) DEFAULT NULL COMMENT '性别状态',
  `gender_remark` varchar(255) DEFAULT NULL COMMENT '性别备注',
  PRIMARY KEY (`id`,`gender_code`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户性别数据';

-- ----------------------------
-- Records of base_user_gender
-- ----------------------------
INSERT INTO `base_user_gender` VALUES ('1', 'man', '男性', 'on', '男性');
INSERT INTO `base_user_gender` VALUES ('2', 'woman', '女性', 'on', '女性');

-- ----------------------------
-- Table structure for base_user_level
-- ----------------------------
DROP TABLE IF EXISTS `base_user_level`;
CREATE TABLE `base_user_level` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `level_code` varchar(255) NOT NULL COMMENT '级别编码',
  `level_name` varchar(255) DEFAULT NULL COMMENT '级别名称',
  `level_status` varchar(255) DEFAULT NULL COMMENT '级别状态',
  `level_remark` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`,`level_code`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='用户级别数据';

-- ----------------------------
-- Records of base_user_level
-- ----------------------------
INSERT INTO `base_user_level` VALUES ('1', 'one', '一', 'on', '级别一');
INSERT INTO `base_user_level` VALUES ('2', 'two', '二', 'on', '级别二');
INSERT INTO `base_user_level` VALUES ('3', 'three', '三', 'on', '级别三');
INSERT INTO `base_user_level` VALUES ('4', 'four', '四', 'on', '级别四');
INSERT INTO `base_user_level` VALUES ('5', 'five', '五', 'on', '级别五');

-- ----------------------------
-- Table structure for base_user_status
-- ----------------------------
DROP TABLE IF EXISTS `base_user_status`;
CREATE TABLE `base_user_status` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `status_code` varchar(255) NOT NULL COMMENT '状态编码',
  `status_name` varchar(255) DEFAULT NULL COMMENT '状态名称',
  `status_stas` varchar(255) DEFAULT NULL COMMENT '状态是否在使用',
  `status_remark` varchar(255) DEFAULT NULL COMMENT '状态备注',
  PRIMARY KEY (`id`,`status_code`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='用户状态数据';

-- ----------------------------
-- Records of base_user_status
-- ----------------------------
INSERT INTO `base_user_status` VALUES ('1', 'online', '在线', 'on', '用户登录了系统,对其他用户可见');
INSERT INTO `base_user_status` VALUES ('2', 'offline', '离线', 'on', '用户未登录系统');
INSERT INTO `base_user_status` VALUES ('3', 'cloak', '隐身', 'on', '用户登录了系统,对其他用户不可见');
INSERT INTO `base_user_status` VALUES ('4', 'nodisturb', '请勿打扰', 'on', '用户登录了系统,不想被打扰');
INSERT INTO `base_user_status` VALUES ('5', 'busy', '忙碌', 'on', '用户登录了系统,但是全屏处于另外进程状态');
INSERT INTO `base_user_status` VALUES ('6', 'leave', '离开', 'on', '用户登录了系统,长时间未操作处于离开状态');
INSERT INTO `base_user_status` VALUES ('7', 'freeze', '冻结', 'on', '用户不可登录系统,在某段时间内禁止进入系统');
INSERT INTO `base_user_status` VALUES ('8', 'remove', '移除', 'on', '用户不可登录系统,已被封号');

-- ----------------------------
-- Table structure for base_user_type
-- ----------------------------
DROP TABLE IF EXISTS `base_user_type`;
CREATE TABLE `base_user_type` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `type_code` varchar(255) NOT NULL COMMENT '类型编码',
  `type_name` varchar(255) DEFAULT NULL COMMENT '类型名称',
  `type_status` varchar(255) DEFAULT NULL COMMENT '类型状态',
  `type_remark` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`,`type_code`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='用户类型数据';

-- ----------------------------
-- Records of base_user_type
-- ----------------------------
INSERT INTO `base_user_type` VALUES ('1', 'general', '普通用户', 'on', '普通注册用户');
INSERT INTO `base_user_type` VALUES ('2', 'bronze', '青铜用户', 'on', '青铜特权用户');
INSERT INTO `base_user_type` VALUES ('3', 'silver', '白银用户', 'on', '白银特权用户');
INSERT INTO `base_user_type` VALUES ('4', 'gold', '黄金用户', 'on', '黄金特权用户');
INSERT INTO `base_user_type` VALUES ('5', 'platnum', '白金用户', 'on', '白金特权用户');
INSERT INTO `base_user_type` VALUES ('6', 'diamond', '钻石用户', 'on', '钻石特权用户');
INSERT INTO `base_user_type` VALUES ('7', 'master', '大师用户', 'on', '大师特权用户');
INSERT INTO `base_user_type` VALUES ('8', 'challenger', '王者用户', 'on', '王者特权用户 ');
  • user库
/*
Navicat MySQL Data Transfer

Source Server         : root
Source Server Version : 50717
Source Host           : localhost:3306
Source Database       : sys_user

Target Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001

Date: 2017-07-09 00:29:49
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for user_info
-- ----------------------------
DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `user_code` varchar(255) DEFAULT NULL COMMENT '用户code',
  `user_role` varchar(255) DEFAULT NULL COMMENT '用户角色',
  `user_type` varchar(255) DEFAULT NULL COMMENT '用户类型',
  `user_level` varchar(255) DEFAULT NULL COMMENT '用户级别(配合type使用)',
  `user_rank` varchar(255) DEFAULT NULL COMMENT '用户等级(成长系数)',
  `user_name` varchar(255) DEFAULT NULL COMMENT '用户姓名',
  `user_pwd` varchar(255) DEFAULT NULL COMMENT '用户密码(加密储存)',
  `user_gender` varchar(255) DEFAULT NULL COMMENT '用户性别',
  `user_birthday` date DEFAULT NULL COMMENT '用户出生年月日',
  `user_phone` varchar(255) DEFAULT NULL COMMENT '用户电话',
  `user_province` varchar(255) DEFAULT NULL COMMENT '用户所在省',
  `user_city` varchar(255) DEFAULT NULL COMMENT '用户所在城市',
  `user_register_time` datetime DEFAULT NULL COMMENT '用户注册时间',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';

-- ----------------------------
-- Records of user_info
-- ----------------------------
INSERT INTO `user_info` VALUES ('1', 'admin', 'admin', null, null, null, '系统管理员', 'admin', null, '1993-11-12', '18210535080', null, null, '2017-07-08 23:46:00', '系统管理员');

-- ----------------------------
-- Table structure for user_sync_status
-- ----------------------------
DROP TABLE IF EXISTS `user_sync_status`;
CREATE TABLE `user_sync_status` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_code` varchar(255) NOT NULL COMMENT '用户编码',
  `user_last_status` varchar(255) DEFAULT NULL COMMENT '改变前的状态',
  `user_change_time` datetime DEFAULT NULL COMMENT '状态改变时间',
  `user_status` varchar(255) DEFAULT NULL COMMENT '用户当前状态',
  PRIMARY KEY (`id`,`user_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户同步状态表';

-- ----------------------------
-- Records of user_sync_status
-- ----------------------------
  • log库
/*
Navicat MySQL Data Transfer

Source Server         : root
Source Server Version : 50717
Source Host           : localhost:3306
Source Database       : sys_log

Target Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001

Date: 2017-07-09 00:29:05
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for log_login
-- ----------------------------
DROP TABLE IF EXISTS `log_login`;
CREATE TABLE `log_login` (
  `id` int(11) NOT NULL,
  `login_time` datetime DEFAULT NULL COMMENT '登录时间',
  `user_code` varchar(255) DEFAULT NULL COMMENT '登录用户编码',
  `user_ip` varchar(255) DEFAULT NULL COMMENT '登录用户ip',
  `platform_type` varchar(255) DEFAULT NULL COMMENT '平台类型:Android iOS PC',
  `longitude` varchar(255) DEFAULT NULL COMMENT '登录所在地经度',
  `latitude` varchar(255) DEFAULT NULL COMMENT '登录所在地纬度',
  `logout_time` datetime DEFAULT NULL COMMENT '登出时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统登录日志记录';
CMS之数据库设计 在园子里也混了三年多,随笔200多,一开始只是想把自己的经验写一下,后来呢弄出来了一个"自然框架",主要精力就放在了介绍自然框架的思路上面了。随笔多了就发现一个问题:有点乱。虽然博客有分组,但是只支持一级分组,不支持n级的。博客里也没有"栏目"这一类的设置。所以对于随笔的管理有有点力不从心了。有些兄弟看到我的博客,看到我说自然框架,然后就会很迷茫,自然框架到底是什么?能做什么?如果想看看的话,从什么地方开始看,按照什么顺序来看?   博客的这种形式就不大好解决这种需求了,当然也许是我对博客还不了解,没有用好吧。所以我想做一个网站,这个网站专门介绍自然框架。一开始只想做一个静态的,内容也不多嘛,做几个页面,介绍一下,把博客里的随笔整理一下做个目录便于阅读。但是试了一下才发现,静态页面好麻烦呀,也许是我太懒了吧,总是想简单一些。于是就想做一个简单的CMS,然后用这个CMS来做自然框架的介绍网站。   您可能会说了,海洋又在重复制造轮子了,网上有一大堆现成的,有很多成熟的不去用,自己写什么呀?   首先呢,我是程序员(嘿嘿),我先想到的是我自己能不能做出来?别人能做我为什么不行?我不是顾客,我也不是有钱人,到处去弄现成的。其次呢,做一个CMS也是一个练手的机会,同时也是自然框架的一个Demo,比较大的、完整的Demo。借此来说明自然框架的使用方式,和在网页里的作用。最后就是想借此说一下我的设计数据库的思路。我觉得我的设计数据库的思路还是有点特色的。   好了,开始进入正题。   首先是了解需求。一个网站会有什么?首页、新闻(图文形式的信息)、产品介绍、文件下载、图片浏览、在线视频等。这些都算是"内容"的几种形式吧,当然还可以有其他的形式。 CMS之数据库设计全文共5页,当前为第1页。  这个需求比较简单,也比较简陋,暂时就以这个需求来进行设计吧。如果是按照面向对象的方式要如何设计呢?这个我不太清楚,也许是要画一个UML吧,也许要建模。尝试一下,画了一个UML不知道对不对,拿出来请大家批批。 CMS之数据库设计全文共5页,当前为第1页。 【CMS的类图】   图很简单也没什么具体的属性,因为需求是变化的,现在也没有太具体的需求,所以属性就先设置几个主要的。另外俺英文不好,怕查出来的英文单词不正确产生歧义,所以直接用汉字了。可能您看着很别扭,但是至少不会产生什么歧义,理解起来也会比较容易吧,呵呵。   "内容"作为父类,其他的作为子类。内容是一种"抽象",把各种形式的内容的共同部分提炼出来,比如标题、内容、添加人、添加日期、点击量等。子类负责各自特有的属性。   我觉得这种提炼的方式比较好,在设计数据库表结构的时候可以借鉴一下。于是就有了这样的数据库设计。 CMS之数据库设计全文共5页,当前为第2页。【CMS ER图】 CMS之数据库设计全文共5页,当前为第2页。   "内容"作为主体和中心,其他的都是为了这个中心(内容)来服务的。左面是对内容的限制,栏目相当于大分类,分类就是小分类(可以是n级的),类型就是内容的形式,比如图文、下载、视频、图片等。右面是扩展。扩展和类型是一一对应的。   这就形成了一个"骨架",骨架是以"内容"为中心,ArticleID作为关联字段,可以增加扩展表,但是都要以ArticleID作为关联字段。至于有多少扩展表,那就可以根据实际需求来变化,表里的字段也是可以根据需求来增减。   设置这种"骨架"的好处:虽然扩展表、字段会有变化,但是"骨架"结构是不变的。这样一是可以让结构清晰,抓住中心、重点;二是当需求变化的时候,对结构的影响降到最低;三是,如果对于这种"骨架"习惯、掌握了之后,在看到其他项目的设计就会很容易进入和读懂。关于第三点,以后大家就会理解的。 CMS之数据库设计全文共5页,当前为第3页。  基本思路就是这样,抛砖引玉了。 CMS之数据库设计全文共5页,当前为第3页。 CMS之数据库设计全文共5页,当前为第4页。ps:CMS的字段说明 CMS之数据库设计全文共5页,当前为第4页。 表编号 字段编号 字段名 中文名 类型 大小 默认值 允许空 说明 5000 0 CMS_Channel 网站栏目           5000 10 ChannelID 主键 int 4 1 0 主键,自增 5000 20 channelName 栏目名称 nvarchar 30 _ 0 栏目名称 5000 30 Sort 排序 int 4 10 0 小号在前 5000 40 URL 栏目的网址 nvarchar 50 _ 0 新闻内容     5005 0 CMS_ArticleClass 内容的n级分组           5005 10 ClassID 主键 int 4 1 0 主键,自增
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值