* * * * *
#### !!因为时间不是很充裕。项目基本做到哪里就写哪里,请体谅一下。可以跟着项目步骤做,后期有时间再对项目结构进行规划。
* * * * *
项目一开始,我们先创建一些数据表
/* **后台菜单的展示表***/
DROP TABLE IF EXISTS `ke_menu`;
CREATE TABLE `ke_menu` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '文档ID',
`name` varchar(10) NOT NULL DEFAULT '' COMMENT '名称',
`icon` varchar(30) DEFAULT '' COMMENT '图标',
`url` char(255) NOT NULL DEFAULT '' COMMENT '菜单链接',
`pid` int(8) unsigned NOT NULL DEFAULT '0' COMMENT '上级分类ID',
`sort` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '排序(同级)',
`hide` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否隐藏',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单状态',
PRIMARY KEY (`id`),
) ENGINE=MyISAM AUTO_INCREMENT DEFAULT 0 CHARSET=utf8;
* * * * *
表的结构 `ke_auth_access`
CREATE TABLE `ke_auth_access` (
`uid` bigint(8) UNSIGNED NOT NULL COMMENT '用户组id',
`group_id` mediumint(8) UNSIGNED NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户组关联';
-- ---
表的结构 `ke_auth_extend`
CREATE TABLE `ke_auth_extend` (
`group_id` mediumint(10) UNSIGNED NOT NULL COMMENT '用户id',
`extend_id` varchar(300) NOT NULL COMMENT '扩展表中数据的id',
`type` tinyint(1) UNSIGNED NOT NULL COMMENT '扩展类型标识 1:栏目分类权限;2:模型权限'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户组与分类的对应关系表';
-- --------------------------------------------------------
表的结构 `ke_auth_group`
CREATE TABLE `ke_auth_group` (
`id` mediumint(8) UNSIGNED NOT NULL COMMENT '用户组id',
`title` varchar(20) NOT NULL DEFAULT '' COMMENT '用户组id',
`module` varchar(20) NOT NULL DEFAULT '' COMMENT '用户组模块',
`type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组类型',
`description` varchar(80) NOT NULL DEFAULT '' COMMENT '文本描述',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '用户组状态-1:正常-0:禁止',
`rules` varchar(500) NOT NULL DEFAULT '' COMMENT '用户组拥有的多个规则id,用‘,’隔开'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='权限用户组';
-- -------
表的结构 `ke_auth_group_access`
CREATE TABLE `ke_auth_group_access` (
`uid` bigint(10) UNSIGNED NOT NULL COMMENT '用户id',
`group_id` mediumint(8) UNSIGNED NOT NULL COMMENT '用户组id'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
表的结构 `ke_auth_rule`
CREATE TABLE `ke_auth_rule` (
`id` mediumint(8) UNSIGNED NOT NULL COMMENT '规则id,自增主键',
`module` varchar(20) NOT NULL COMMENT '规则所属module',
`type` tinyint(2) NOT NULL DEFAULT '1' COMMENT '1-url;2-主菜单',
`name` char(80) NOT NULL DEFAULT '' COMMENT '规则唯一英文标识',
`title` char(20) NOT NULL DEFAULT '' COMMENT '规则中文描述',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否有效(0:无效,1:有效)',
`condition` varchar(300) NOT NULL DEFAULT '' COMMENT '规则附加条件'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
表的结构 `ke_cate`
CREATE TABLE `ke_cate` (
`id` mediumint(10) NOT NULL,
`catename` varchar(40) NOT NULL,
`pid` int(10) NOT NULL DEFAULT '0',
`sort` mediumint(8) NOT NULL DEFAULT '1' COMMENT '排序序号'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
表的结构 `ke_config`
CREATE TABLE `ke_config` (
`id` mediumint(8) UNSIGNED NOT NULL COMMENT '配置项id',
`name` varchar(60) NOT NULL COMMENT '中文名称',
`name_url` varchar(30) DEFAULT NULL COMMENT '页面索引',
`value` text NOT NULL COMMENT '默认值',
`multi_value` varchar(255) NOT NULL COMMENT '可选值',
`data_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:输入框2:单选 3复选 4:下拉菜单 5:文本域 6:附件',
`conf_type` tinyint(1) NOT NULL COMMENT '1:基本信息 2:联系方式 3:SEO设置 '
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='系统配置表';
-- ------
表的结构 `ke_users`
CREATE TABLE `ke_users` (
`id` bigint(20) NOT NULL,
`uid` varchar(128) NOT NULL COMMENT '系统唯一标识符',
`username` varchar(60) DEFAULT NULL,
`nickname` varchar(50) NOT NULL DEFAULT '无昵称',
`password` varchar(64) NOT NULL,
`email` varchar(100) DEFAULT NULL,
`mobile` varchar(11) NOT NULL,
`regdate` int(10) NOT NULL DEFAULT '0',
`regip` char(15) NOT NULL DEFAULT '0',
`status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '1正常,2禁用,-1删除',
`last_login` int(11) DEFAULT NULL COMMENT '最后登录时间',
`qq_openid` varchar(255) DEFAULT NULL COMMENT 'qqopenid',
`taobao_openid` varchar(255) DEFAULT NULL COMMENT '淘宝openid',
`score` int(11) DEFAULT '0' COMMENT '积分'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
对于这个用户表的建立,我有一些看法。如果是一个大型的系统,表的功能是分的非常细致的。如果是一个大型的商城系统,他的划分必然是:管理员分权限组;用户分几个表;商家分表;进货商再分。每个表功能都很细,再给他们关联起来。数据库也分库,分开放。
如果是一个给中小企业使用的数据库,他的划分就没有那么细致,基本上都只放到一个users表中,再给users做权限控制。这样的开发速度快。我个人觉得这样其实是不太好的,又说不出哪里不好。基本上开源商城都是用一个users表做权限的,tpShop,wstmart,mini,ecshop等。表的数据多了,一定会影响前后台的性能。
下一节我将介绍一些插件。