首页
开发手册
应用中心
工具
用户中心
FoundPHP 数据库设计
中文简体
中文简体
English
上一篇
下一篇
### FoundPHP 数据库设计 FoundPHP 数据库目前支持6种,最常用的是Mysql,为了通用性以及多数据库的兼容我们给出一些建议与标准,让你开发出的代码更好的兼容性,以及更高的性能运作。 #### 1. 标准 随着数据库的更新,会有更多要求变得越来越严格,FoundPHP设计了全新的结构,让数据库可以适配各种平台数据库的同时又能保证稳定的执行效率与扩展,整体采用数组化。 #### 2. 结构 大多数开发者设计数据库都采用多表结构,比如几种用户:校长、老师、学生、管理员,大多数的时候会设计成每个用户类型一个表,这样存储会比较容易,但是85%的结构几乎相同,反而导致数据库效率更低,但是这样的设计结构与成本会非常低。 设计数据库的时候我们需要考虑到调用与重用,所以我们通常标准类似mvc的概念,例如我们设计用户表`user`的时候主键命名uid,如果表是`article`主键命名为aid。如果user表不够放下老师的资料,那么可以扩展一个子表,`user_teacher`主键命名为utid,这样我们就行程了一个规律。 ``` -- -- 用户表 `foundphp_user` -- CREATE TABLE `foundphp_user` ( `uid` int(11) UNSIGNED NOT NULL, `fid` int(11) DEFAULT '0' COMMENT '父级id', `types` int(2) NOT NULL COMMENT '用户类型:1普通注册 2微信授权进入', `username` varchar(40) NOT NULL COMMENT '用户名', `password` varchar(32) NOT NULL COMMENT '密码', `forget_password` varchar(10) DEFAULT NULL COMMENT '取回密码', `forget_date` int(10) DEFAULT NULL COMMENT '取回密码时间', `gender` tinyint(1) NOT NULL DEFAULT '0' COMMENT '性别:1男,2女', `birth_y` int(11) DEFAULT '0' COMMENT '生日', `birth_m` int(11) DEFAULT '0' COMMENT '生日月份', `birth_d` int(11) DEFAULT '0' COMMENT '生日日期', `age` varchar(20) DEFAULT '0' COMMENT '年龄', `email` varchar(80) DEFAULT NULL COMMENT '邮箱', `phone` varchar(120) DEFAULT NULL COMMENT '电话', `province` varchar(50) DEFAULT NULL COMMENT '省', `city` varchar(50) DEFAULT NULL COMMENT '市', `district` varchar(50) DEFAULT NULL COMMENT '区域', `address` varchar(50) DEFAULT NULL COMMENT '详细地址', `openid` varchar(60) DEFAULT NULL COMMENT '微信openid', `states` int(11) NOT NULL DEFAULT '0' COMMENT '状态:1激活,0不能登录', `state_date` int(11) DEFAULT '0' COMMENT '帐号过期时间', `reg_date` int(11) NOT NULL DEFAULT '0' COMMENT '注册时间', `reg_ip` varchar(15) NOT NULL COMMENT '注册IP', `last_date` int(10) DEFAULT '0' COMMENT '最后登录时间', `last_ip` varchar(15) DEFAULT NULL COMMENT '最后登录ip' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户总列表' ROW_FORMAT=DYNAMIC; -- -- 表的索引 `foundphp_user` -- ALTER TABLE `foundphp_user` ADD PRIMARY KEY (`uid`) USING BTREE, ADD KEY `fid` (`fid`) USING BTREE, ADD KEY `types` (`types`) USING BTREE, ADD KEY `states` (`states`) USING BTREE; -- -- 使用表AUTO_INCREMENT `foundphp_user` -- ALTER TABLE `foundphp_user` MODIFY `uid` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1000; COMMIT; ```` #### 3. 应用 开发项目中访问量增大后,影响效率的往往是数据库,通常会做缓存来减少数据库的应用,但是网站大多数都是采用数据库查询,随着功能增加语句的增多也会导致项目速度降低甚至卡机,这里就要说到数据库的应用量,FoundPHP 提供了数据库调试平台,可以通过调试平台来减少数据库语句,后面会讲解 #### 4.备份、恢复 项目应用久了就会产生大量数据,数据库备份也是重中之重,所以数据库的表结构对于数据库的恢复也需要做好,在恢复的时候也可以尽量的让数据库完整。 - 可以采用Database Master 进行大数据备份与恢复 - 使用宝塔自动备份方案也是不错选择