* * * * *
#### !!因為時間不是很充裕。項目基本做到哪里就寫哪里,請體諒一下。可以跟著項目步驟做,后期有時間再對項目結構進行規劃。
* * * * *
項目一開始,我們先創建一些數據表
/* **后臺菜單的展示表***/
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等。表的數據多了,一定會影響前后臺的性能。
下一節我將介紹一些插件。