存档

文章标签 ‘笔记’

FleaPHP 表关联学习笔记

2009年4月22日

HAS_ONE:当前表的每一条记录都拥有最多一条(0–1)关联记录
HAS_MANY:当前表的每一条记录都拥有多条(0-n)关联记录
MANY_TO_MANY:当前表的每一条记录都和其他表的多条(0-n)记录关联
BELONGS_TO:当前表的每一条记录都属于另一个表的某条记录

关联中必须设置的属性为:
'name',          // 关联的名字(如:hasOne、hasMany)
'tableClass',          // 关联的表数据入口对象名
'mappingName',          // 字段映射名

可选属性:
'foreignKey',          //外键字段名
'sort',          //对关联表进行查询时使用的排序参数
'conditions',          //对关联表进行查询时使用的条件参数
'fields',          //对关联表进行查询时要获取的关联表字段
'limit',          //对关联表进行查询时限制查出的记录数
'enabled',          //是否处理关联,设置为falses时,不处理该表入口的任何关联。enabled 的优先级高于 linkRead、linkCreate、linkUpdate 和 linkRemove。
'countOnly',          //指示在查询关联表时是否仅仅统计记录数,而不实际查询数据
'counterCache',          //将关联记录总数缓存到指定的字段,数据表中要建立相应的字段
'linkRead',          //指示是否在主表读取记录时也读取该关联对应的关联表的记录,默认ture
'linkCreate',          //指示是否在主表创建记录时也创建该关联对应的关联表的记录,默认ture
'linkUpdate',          //指示是否在主表更新记录时也更新该关联对应的关联表的记录,默认ture
'linkRemove',          //指示是否在主表删除记录时也删除该关联对应的关联表的记录,默认ture
'linkRemoveFillValue',          //当删除主表记录而不删除关联表记录时,用什么值填充关联表记录的外键字段,默认0
'saveAssocMethod',          //指示当保存关联数据时,采用何种方法,默认为 save,可以设置为 create、update 或 replace

关联:一个关联是一个关系,这个关系属于某一个数据表。例如 users 表可能就拥有一个或者多个关联。
主表:对于一个关联,拥有该关联的数据表就是主表。例如 posts 表定义了一个 MANY_TO_MANY 关联。那么在这里(指这个关联),posts 就是主表。
关联表:在一个关联中,关联表就是除主表外的另一个表。
外键:在数据库原理中,外键的含义很复杂。但在 FleaPHP 框架中的数据库关联功能中,外键泛指一个记录中用于关联另一个记录的字段。例如 profile 表中的 user_id 字段就是用于关联 users 表的字段。这个 user_id 字段就是一个外键。
中间表:在 MANY_TO_MANY 关联中,除了主表和关联表,还需要另一个表来保存这两个表的记录之间的互相关联关系。这个表称为中间表。

PHP

phpDoc 注释的一点说明

2009年2月3日

PHP 编程最好能做好各种注释,不管是用 IDE 还是编辑器进行代码编写,良好的注释总能给予极大的帮助。对于 phpDoc 注释的用法这里做点简单的说明。

/**
* @name  名字
* @abstract  申明变量/类/方法
* @access  指明这个变量、类、函数/方法的存取权限
* @author  函数作者的名字和邮箱地址
* @category  组织packages
* @copyright  指明版权信息
* @const  指明常量
* @deprecate  指明不推荐或者是废弃的信息
* @example  示例
* @exclude  指明当前的注释将不进行分析,不出现在文挡中
* @final  指明这是一个最终的类、方法、属性,禁止派生、修改。
* @global  指明在此函数中引用的全局变量
* @include  指明包含的文件的信息
* @link  定义在线连接
* @module  定义归属的模块信息
* @modulegroup  定义归属的模块组
* @package  定义归属的包的信息
* @param  定义函数或者方法的参数信息
* @return  定义函数或者方法的返回信息
* @see  定义需要参考的函数、变量,并加入相应的超级连接。
* @since  指明该api函数或者方法是从哪个版本开始引入的
* @static  指明变量、类、函数是静态的。
* @throws  指明此函数可能抛出的错误异常,极其发生的情况
* @todo  指明应该改进或没有实现的地方
* @var  定义说明变量/属性。
* @version  定义版本信息
*/

PHP

Ubuntu 下配置 LAMP 环境

2009年1月24日

曾经兴冲冲的在自己电脑上弄 XP + Ubuntu 双系统,经过多次反复查阅相关资料和重装 Ubuntu 终于稳定下来。当时找了很多关于 Ubuntu 下配置 LAMP 环境资料,几番总结才较为顺利的吧这东东搞定,不敢独享将经验稍稍整理一下贴出来,也备自己以后复习。值得一提的是,当初使用的 Ubuntu 版本是 7.0.4,如今 9.0.4 都在开发中了,呵呵,理论上应该各版本通用,如果不行就没辙咯。

一、安装 Apache2 + PHP5 + MySQL + phpmyadmin

这步其实很简单,在 Ubuntu 7.0.4 下只需要一条命令 sudo apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql phpmyadmin php5-cli php-pear

二、开启 mod_rewrite

首先使用命令 sudo a2enmod rewrite 启用 mod_rewrite。由于在 Ubuntu 下 Apache 默认配置不会读取 rewrite 规则也不访问 .htaccess,还需要使用命令 sudo gedit /etc/apache2/sites-available/default 打开配置文件将前两个 AllowOverRide None 改成 AllowOverRide All

阅读全文...

L.A.M.P

MySQL 的字段类型及长度

2009年1月23日

数值类型

列类型 需要的存储量
TINYINT 1 字节
SMALLINT 2 字节
MEDIUMINT 3 字节
INT 4 字节
INTEGER 4 字节
BIGINT 8 字节
FLOAT(X) 4 字节(如果 X < = 24 或 8 如果 25 < = X < = 53)
FLOAT 4 字节
DOUBLE 8 字节
DOUBLE PRECISION 8 字节
REAL 8 字节
DECIMAL(M,D) M 字节 (D+2 , 如果M < D)
NUMERIC(M,D) M 字节 (D+2 , 如果M < D)

阅读全文...

L.A.M.P