久久er精品视频_先锋影院在线亚洲_影音先锋一区_性色av香蕉一区二区

中山php|最優網絡中山做網站 中山php建站

最優良人

2011/09/06 at 16:13

FleaPHP數據表關聯設置

目前,FleaPHP支持四種類型的數據表關聯,分別是:

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 或 replacevar $belongsTo = array(
‘tableClass’ => ‘Table_Users’,
‘mappingName’ => ‘author’,
‘foreignKey’ => ‘user_id’
);

var $hasOne = array(
‘tableClass’ => ‘Table_Profiles’,
‘mappingName’ => ‘profiles’,
‘foreignKey’ => ‘user_id’,
’saveAssocMethod’=> ’save’
);

var $hasMany = array(
‘tableClass’ => ‘Table_Profiles’,
‘mappingName’ => ‘profiles’,
‘foreignKey’ => ‘user_id’,
’saveAssocMethod’=> ’save’
);

var $manyToMany=array(

);

一個表可以有多個關聯
var $hasMany = array(
array(
‘tableClass’ => ‘Model_Permissions’,
‘foreignKey’ => ‘pclass_id’,
‘mappingName’ => ‘permissions’,
),
array(
‘tableClass’ => ‘Model_Products’,
‘foreignKey’ => ‘pclass_id’,
‘mappingName’ => ‘products’,
‘enabled’ => false,
),
[
array(
...
),
]
);
關聯: 一個關聯是一個關系,這個關系屬于某一個數據表。例如 users 表可能就擁有一個或者多個關聯。
主表: 對于一個關聯,擁有該關聯的數據表就是主表。例如 posts 表定義了一個 MANY_TO_MANY 關聯。
那么在這里(指這個關聯),posts 就是主表。

關聯表: 在一個關聯中,關聯表就是除主表外的另一個表。
外鍵: 在數據庫原理中,外鍵的含義很復雜。但在 FleaPHP 框架中的數據庫關聯功能中,
外鍵泛指一個記錄中用于關聯另一個記錄的字段。例如 profile 表中的 user_id 字段就是用于關聯 users 表的字段。
這個 user_id 字段就是一個外鍵。

中間表: 在 MANY_TO_MANY 關聯中,除了主表和關聯表,還需要另一個表來保存這兩個表的記錄之間的互相關聯關系。
這個表稱為中間表。
HAS_ONE 一對一關聯
HAS_ONE 是一種非常簡單的關聯關系。表示一個記錄擁有另一個記錄。這兩個記錄分別位于兩個數據表中。

示例
在一個信息管理系統中,users 表用于存儲用戶帳戶的基本信息,例如用戶名、密碼等。
而 profiles 表則用于存儲用戶的個人信息,例如家庭住址、郵政編碼等。

由于每一個用戶(一條 users 表中的記錄)都有一份對應的個人信息(一條 profiles 表中的記錄)。
因此,我們就可以為 users 表定義一個 HAS_ONE 關聯。

很明顯,users 表的記錄擁有一條 profiles 表的記錄。因此,當 users 表中的一條記錄被刪除時,
被刪除記錄所擁有的 profiles 表中的關聯記錄也會被自動刪除。

表定義
在 HAS_ONE 關聯中,要求外鍵放置在關聯表中

分別對應FLEA_Db_TableDataGateway表中的 $hasOne,$hasMany,$manyToMany,$belongsTo 屬性

我們下面就用 老師,學生,學生檔案,班級的例子說說這幾個關系。

以下是SQL代碼:

//學生表
Create TABLE `testDB`.`student` (
`stu_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`stu_name` VARCHAR(20) NOT NULL,
`stu_class_id` INTEGER UNSIGNED NOT NULL,
PRIMARY KEY (`stu_id`)
)//學生檔案表
Create TABLE `testDB`.`stu_record` (
`record_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`stu_id` INTEGER UNSIGNED NOT NULL,
`family_add` VARCHAR(150) NULL,
`family_tel` VARCHAR(20) NULL,
PRIMARY KEY (`record_id`)
)

//教師表
Create TABLE `testDB`.`teacher` (
`teacher_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`teacher_name` VARCHAR(20) NOT NULL,
PRIMARY KEY (`teacher_id`)
)

//班級表
Create TABLE `testDB`.`classes` (
`class_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`class_name` VARCHAR(20) NOT NULL,
PRIMARY KEY (`class_id`)
)

//由于教師與班級是多對多關系,所有建立一個中間連接表以表示該關聯
Create TABLE `testDB`.`link_teacher_classes` (
`link_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`teacher_id` INTEGER UNSIGNED NOT NULL,
`class_id` INTEGER UNSIGNED NOT NULL,
PRIMARY KEY (`link_id`)
)

現在,建好表之后,我們還要寫幾個繼承自FLEA_Db_TableDataGateway父類的類,以對應數據庫中的Student,Teacher,Classes表(連接表不用了)如下:

//學生表對應的類
class Model_Student extends FLEA_Db_TableDataGateway{
var $tableName = ’student’;
var $primaryKey = ’stu_id’;

/*
這是一對一關系,一個學生對應唯一的一個Record檔案
tableClass 對應要與之關聯一對一的表的對象類,即檔案表的類
foreignKey是在檔案表中,對應學生表的一個外鍵接連字段,
用該字段標識該檔案屬于哪個學生
mappingName 就是用于在你查詢學生信息時,學生檔案字段的別名
*/
var $hasOne = array(
’tableClass’ => ‘Model_Record’,
’foreignKey’ => ’stu_id’,
’mappingName’ => ‘record’
);
/*
這是從屬關系,一個學生屬于某一個班級,換過來說就是班級與學生一對多,
一個班級有多個學生,而學生就只屬于一個班級
tableClass 指定該類要與之有從屬關系的類,這里是班級類
foreignKey 這里指定的是該表里的連接外表的字段,這里是學生表的班級ID字段
注意:這里的foreignKey指的是本表的字段,而上面hasOne關系中的foreignKey
指的是外表中的字段,要注意區分清楚
mappingName這里就不多說了,跟上面的一樣,也是用于顯示區分的別名
*/
var $belongsTo = array(
array(
’tableClass’ => ‘Model_Classes’,
’foreignKey’ => ’stu_class_id’,
’mappingName’ => ‘class’
)
);
}//檔案表對應的類
class Model_Record extends FLEA_Db_TableDataGateway{
var $tableName = ’stu_record’;
var $primaryKey = ‘record_id’;
}

//教師表對應的類
class Model_Teacher extends FLEA_Db_TableDataGateway{
var $tableName = ‘teacher’;
var $primaryKey = ‘teacher_id’;

/*
這里確立了教師與班級的多對多關系,一個教師可以教多個班級
而一個班級也有多個教師
tableClass 指定要建立多對多關系的表的類
joinTable 這個屬性要注意一個,這個是指定教師表與班級表關系的連接表
由于二維表的數據結構的原因,所以多對多關系要用一個中間表(即連接表)來表示
連接表中就指明兩個表各自的主鍵ID就可以了,以兩個字段作復合主鍵,如不用復合
主鍵,就新增加一個字段作主鍵也可,這沒關系
*/
var $manyToMany = array(
array(
’tableClass’ => ‘Model_Classes’,
’mappingName’ => ‘class’,
’joinTable’ => ‘link_teacher_classes’,
)
);
}

class Model_Classes extends FLEA_Db_TableDataGateway{
var $tableName = ‘classes’;
var $primaryKey = ‘class_id’;

/*
這里確立了班級與學生的一對多關系
tableClass 指定該表的類要與哪個表的類建立一對多關系
foreignKey 外鍵ID,這里即指定學生表中定義的班級ID,這個是外表的字段
*/
var $hasMany = array(
array(
’tableClass’ => ‘Model_Student’,
’foreignKey’ => ’stu_class_id’,
’mappingName’ => ’students’
)
);

var $manyToMany = array(
// 由于多對多關系是雙向的,所以班級表也可以定義上與教師表的多對多關系
// 也可以不寫,看需求而定,比如你想查看某個班級信息時,一并顯示該班
// 有多少個任課老師的話,那就在這個班級類里加上關系,我這里就不寫了。。。
);
}

以上的代碼就建立好了關系了,現在只管使用就是了。
不過還提醒大家一點,在每個關系里,都有一個 ‘enabled’ 的屬性,如果設置為 false的話,則是將該關系禁掉,所以查詢出來的結果就沒有該關系的相應數據,這樣可以節省效率,按需要時才打開相應的關聯,該屬性默認為true 可以如下設置:

array(
’tableClass’ => ‘Model_Student’,
’foreignKey’ => ’stu_class_id’,
’mappingName’ => ’students’,
‘enabled’ => false
)

現在我們來測試一下數據。(事先自行插入幾行數據用以測試)

$classManager = FLEA::getSingleton(‘Model_Classes’);
$class =& $classManager->find(array(‘class_id’ => 1));
dump($class);
標簽:,
-
久久er精品视频_先锋影院在线亚洲_影音先锋一区_性色av香蕉一区二区
国产精品都在这里| 国产专区欧美精品| 在线一区观看| aa成人免费视频| 国产精品狼人久久影院观看方式| 亚洲视频一区二区免费在线观看| 一区二区免费看| 国产欧美日韩综合| 免费av成人在线| 欧美日韩免费网站| 久久er99精品| 久久网站热最新地址| 一本到12不卡视频在线dvd| 在线一区二区三区四区五区| 国产精品区一区二区三区| 久久久久久久久久久一区 | 亚洲一区一卡| 欧美在线观看天堂一区二区三区| 激情综合自拍| 99精品欧美一区二区三区| 国产精品午夜在线观看| 欧美aa国产视频| 欧美午夜视频网站| 久久综合网络一区二区| 欧美久久视频| 久久理论片午夜琪琪电影网| 久久综合亚州| 欧美一区二区大片| 欧美1级日本1级| 欧美一级二级三级蜜桃| 欧美肥婆在线| 久久精品免视看| 欧美连裤袜在线视频| 久久久噜噜噜| 国产精品看片资源| 亚洲人成人99网站| 国内偷自视频区视频综合| 亚洲精品久久久久久久久久久| 国产一区二区三区日韩| 一本色道久久综合狠狠躁的推荐| 又紧又大又爽精品一区二区| 亚洲女人天堂成人av在线| 亚洲精品国产日韩| 久久露脸国产精品| 久久精品国产免费| 国产精品视频在线观看| 99国产精品私拍| 亚洲精品免费网站| 另类尿喷潮videofree| 久久国产精品色婷婷| 国产精品久久久久久久久| 亚洲欧洲日韩在线| 亚洲国产精品久久久久秋霞影院 | 国产精品主播| 亚洲视频二区| 亚洲你懂的在线视频| 欧美日本一区二区三区| 亚洲国产三级在线| 亚洲日本精品国产第一区| 久久中文久久字幕| 欧美成ee人免费视频| 黄色工厂这里只有精品| 久久国产精品毛片| 久久在线播放| 亚洲第一中文字幕在线观看| 麻豆免费精品视频| 亚洲国产欧美在线| 日韩亚洲国产精品| 欧美日韩福利视频| 一本在线高清不卡dvd| 午夜国产精品影院在线观看| 欧美亚州韩日在线看免费版国语版| 亚洲美女中文字幕| 亚洲尤物在线视频观看| 国产精品日韩欧美一区| 小黄鸭精品aⅴ导航网站入口| 久久成人人人人精品欧| 激情校园亚洲| 欧美激情aaaa| 亚洲色诱最新| 久久人体大胆视频| 91久久久亚洲精品| 欧美黄色视屏| 亚洲一区二区久久| 久久在线免费观看| 亚洲免费电影在线观看| 欧美日韩综合| 久久精品二区三区| 亚洲黄色性网站| 性色av一区二区三区| 狠狠色综合网| 欧美日韩亚洲综合| 欧美综合第一页| 欧美69视频| 亚洲影音一区| 精品成人在线视频| 欧美日韩福利在线观看| 欧美在线日韩精品| 亚洲区中文字幕| 久久久久久久久伊人| 日韩手机在线导航| 国语自产精品视频在线看一大j8| 欧美大胆人体视频| 亚洲欧美精品伊人久久| 亚洲国产日韩在线| 久久精品国产亚洲一区二区| 日韩视频在线一区二区| 国产婷婷色一区二区三区| 欧美激情偷拍| 久久精品伊人| 亚洲一区二区网站| 亚洲欧洲久久| 免费av成人在线| 欧美一区深夜视频| 一区二区日本视频| 91久久国产精品91久久性色| 国产精品一区视频网站| 欧美乱大交xxxxx| 久久亚洲综合色| 久久国产夜色精品鲁鲁99| 一区二区精品在线观看| 亚洲国产导航| 欧美成人免费网| 久久久久久久尹人综合网亚洲 | 国产亚洲欧美日韩美女| 欧美午夜激情在线| 欧美精品少妇一区二区三区| 老鸭窝毛片一区二区三区| 久久www免费人成看片高清| 亚洲免费视频在线观看| 一区二区三区视频观看| 日韩午夜电影av| 亚洲人成在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 久久天天躁狠狠躁夜夜爽蜜月| 欧美一区二区私人影院日本 | 玉米视频成人免费看| 国产一区二区三区四区老人| 国产精品久久久久久久app| 欧美日韩在线看| 欧美视频一区二区| 欧美视频亚洲视频| 国产精品视频专区| 国产精品综合色区在线观看| 国产欧美成人| 国产亚洲精品一区二555| 国产日韩一区二区三区| 狠狠干综合网| 亚洲国产精品免费| 亚洲欧洲美洲综合色网| 亚洲伦理中文字幕| 一区二区三区高清在线| 亚洲免费人成在线视频观看| 亚洲综合大片69999| 欧美主播一区二区三区| 久久久久国产精品人| 久久综合国产精品| 欧美国产专区| 一本色道久久综合亚洲精品不 | 亚洲精品视频在线播放| 亚洲最新视频在线| 亚洲在线免费| 久久婷婷蜜乳一本欲蜜臀| 欧美高清视频一二三区| 国产精品久久久久久久久久免费看| 国产精品美女久久久| 一区在线影院| 99视频日韩| 久久九九久久九九| 亚洲高清在线| 亚洲一区免费观看| 老巨人导航500精品| 欧美日韩一区在线| 国内精品国产成人| 亚洲最快最全在线视频| 亚洲欧美国产精品va在线观看| 久久久精品日韩欧美| 91久久久在线| 亚洲欧美怡红院| 欧美激情第1页| 国产日本亚洲高清| 99国产精品99久久久久久粉嫩| 欧美一级免费视频| 亚洲国产精品高清久久久| 亚洲综合精品自拍| 欧美精品1区| 一区二区三区在线观看视频| 中文精品一区二区三区| 欧美成人免费一级人片100| 亚洲一区二区免费在线| 欧美粗暴jizz性欧美20| 国外成人在线视频| 亚洲欧美日韩国产精品| 亚洲级视频在线观看免费1级| 欧美一级视频| 国产精品―色哟哟| 99国产一区| 亚洲国产精品成人综合色在线婷婷 | 一区二区三区欧美激情| 美女主播视频一区|