首页 > PHP > FleaPHP 表关联学习笔记

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 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.