良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计schema,这往往就要权衡很多因素。例如,反范式的设计可以加快某些类型的查询,但同时也可能使另一些类型的查询变慢。比如添加...
ThinkPHP5 控制器(一:控制器架构)
在实际项目中,我们在拿到需求之前,往往要先进行框架的选择和搭建,以及开发一些公用的方法,接下来,博主会将自己用到的公用方法进行封装分享。控制器架构在复杂项目中,一个模块并不能满足我们的需求,大多数情况...

RBAC(基于角色的权限访问控制)数据库设计
大多数项目中,多多少少都会涉及到权限控制,各种编程语言也有相对应的开源代码。但是,在项目复杂的项目中,可能无法满足我们的需求,因此,我们来介绍下完整的RBAC 及其数据库设计。RBAC,即基于角色的权...
Thinkphp5 部署Apache URL重写问题
我们写好的代码往往部署于Linux上,为了安全和URL的美观,经常会利用 Apache或者 Nignx 进行URL 重写。ThinkPHP5 官方URL重写说明: Thinkphp5 URL...
ThinkPHP5 工具类(四:上传文件至 OSS)
前面介绍了 ThinkPHP5 文件上传类,下面我们利用 ThinkPHP5 文件类实现上传文件至 OSS。文件保存在OSS有以下好处:1)实现服务器水平扩展(负载均衡)时,可以保证用户上传的文件保存...
表格组件:bootstrap-table(三:扩展使用 bootstrap-contextmenu 、 bootstrap-editable )
在前面 表格组件:bootstrap-table(二:高级使用) 中,对 bootstrap-table 进行了封装,这样可以对一些不常变的参数进行统一设置,如:分页类型、页码大...

使用xhsell, xftp 连接 WMware 中的 centos (利用NAT模式) 实现互通
最近需要用到php的一些C扩展, 在windows 下不支持此扩展,需要使用 linux 进行扩展的编译和测试。由于linux下开发代码不方便,以及鼠标需要频繁切换,所以可以使用 xftp 连接,上传...
表格组件:bootstrap-table(一:基础使用)
一、相关文档bootstrap-table 中文网:http://www.bootcss.combootstrap-table Demo:http://issues.wenzhixin.net.cn/...

PHP 计算字符串表达式(二)
由于eval()在安全性上存在问题,因此需考虑使用其余办法解决字符串表达式的计算。在数据结构中,栈(stack)是一种只能在一...
MySQL 复制(二:配置)
为MySQL服务器配置复制非常简单。但由于场景不同,基本的步骤还是有所差异。最基本的场景是新安装的主库和备库,总的来说分为以下几步:在每台服务器上创建复制账号配置主库和备库。通知备库连接到主库并从主库...