国内精品欧美视频一区二区,成年人网站一级黄色免费,欧美一区二区三区不卡放荡的寡妇,欧美成人性生活视频在线观看

中山php|最優(yōu)網(wǎng)絡(luò)中山做網(wǎng)站 中山php建站

最優(yōu)良人

2011/09/06 at 16:13

FleaPHP數(shù)據(jù)表關(guān)聯(lián)設(shè)置

目前,F(xiàn)leaPHP支持四種類(lèi)型的數(shù)據(jù)表關(guān)聯(lián),分別是:

HAS_ONE: 當(dāng)前表的每一條記錄都擁有最多一條(0–1)關(guān)聯(lián)記錄
HAS_MANY: 當(dāng)前表的每一條記錄都擁有多條(0-n)關(guān)聯(lián)記錄
MANY_TO_MANY: 當(dāng)前表的每一條記錄都和其他表的多條(0-n)記錄關(guān)聯(lián)
BELONGS_TO: 當(dāng)前表的每一條記錄都屬于另一個(gè)表的某條記錄

關(guān)聯(lián)中必須設(shè)置的屬性為:
‘name’, // 關(guān)聯(lián)的名字(如:hasOne、hasMany)
‘tableClass’, // 關(guān)聯(lián)的表數(shù)據(jù)入口對(duì)象名
‘mappingName’, // 字段映射名

可選屬性:
‘foreignKey’, //外鍵字段名
’sort’, //對(duì)關(guān)聯(lián)表進(jìn)行查詢(xún)時(shí)使用的排序參數(shù)
‘conditions’, //對(duì)關(guān)聯(lián)表進(jìn)行查詢(xún)時(shí)使用的條件參數(shù)
‘fields’, //對(duì)關(guān)聯(lián)表進(jìn)行查詢(xún)時(shí)要獲取的關(guān)聯(lián)表字段
‘limit’, //對(duì)關(guān)聯(lián)表進(jìn)行查詢(xún)時(shí)限制查出的記錄數(shù)
‘enabled’, //是否處理關(guān)聯(lián),設(shè)置為falses時(shí),不處理該表入口的任何關(guān)聯(lián)。enabled 的優(yōu)先級(jí)高于 linkRead、linkCreate、linkUpdate 和 linkRemove。
‘countOnly’, //指示在查詢(xún)關(guān)聯(lián)表時(shí)是否僅僅統(tǒng)計(jì)記錄數(shù),而不實(shí)際查詢(xún)數(shù)據(jù)
‘counterCache’, //將關(guān)聯(lián)記錄總數(shù)緩存到指定的字段,數(shù)據(jù)表中要建立相應(yīng)的字段
‘linkRead’, //指示是否在主表讀取記錄時(shí)也讀取該關(guān)聯(lián)對(duì)應(yīng)的關(guān)聯(lián)表的記錄,默認(rèn)ture
‘linkCreate’, //指示是否在主表創(chuàng)建記錄時(shí)也創(chuàng)建該關(guān)聯(lián)對(duì)應(yīng)的關(guān)聯(lián)表的記錄,默認(rèn)ture
‘linkUpdate’, //指示是否在主表更新記錄時(shí)也更新該關(guān)聯(lián)對(duì)應(yīng)的關(guān)聯(lián)表的記錄,默認(rèn)ture
‘linkRemove’, //指示是否在主表刪除記錄時(shí)也刪除該關(guān)聯(lián)對(duì)應(yīng)的關(guān)聯(lián)表的記錄,默認(rèn)ture
‘linkRemoveFillValue’, //當(dāng)刪除主表記錄而不刪除關(guān)聯(lián)表記錄時(shí),用什么值填充關(guān)聯(lián)表記錄的外鍵字段,默認(rèn)0
’saveAssocMethod’, //指示當(dāng)保存關(guān)聯(lián)數(shù)據(jù)時(shí),采用何種方法,默認(rèn)為 save,可以設(shè)置為 create、update 或 replacevar $belongsTo = array(
‘tableClass’ => ‘Table_Users’,
‘mappingName’ => ‘a(chǎn)uthor’,
‘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(

);

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

關(guān)聯(lián)表: 在一個(gè)關(guān)聯(lián)中,關(guān)聯(lián)表就是除主表外的另一個(gè)表。
外鍵: 在數(shù)據(jù)庫(kù)原理中,外鍵的含義很復(fù)雜。但在 FleaPHP 框架中的數(shù)據(jù)庫(kù)關(guān)聯(lián)功能中,
外鍵泛指一個(gè)記錄中用于關(guān)聯(lián)另一個(gè)記錄的字段。例如 profile 表中的 user_id 字段就是用于關(guān)聯(lián) users 表的字段。
這個(gè) user_id 字段就是一個(gè)外鍵。

中間表: 在 MANY_TO_MANY 關(guān)聯(lián)中,除了主表和關(guān)聯(lián)表,還需要另一個(gè)表來(lái)保存這兩個(gè)表的記錄之間的互相關(guān)聯(lián)關(guān)系。
這個(gè)表稱(chēng)為中間表。
HAS_ONE 一對(duì)一關(guān)聯(lián)
HAS_ONE 是一種非常簡(jiǎn)單的關(guān)聯(lián)關(guān)系。表示一個(gè)記錄擁有另一個(gè)記錄。這兩個(gè)記錄分別位于兩個(gè)數(shù)據(jù)表中。

示例
在一個(gè)信息管理系統(tǒng)中,users 表用于存儲(chǔ)用戶(hù)帳戶(hù)的基本信息,例如用戶(hù)名、密碼等。
而 profiles 表則用于存儲(chǔ)用戶(hù)的個(gè)人信息,例如家庭住址、郵政編碼等。

由于每一個(gè)用戶(hù)(一條 users 表中的記錄)都有一份對(duì)應(yīng)的個(gè)人信息(一條 profiles 表中的記錄)。
因此,我們就可以為 users 表定義一個(gè) HAS_ONE 關(guān)聯(lián)。

很明顯,users 表的記錄擁有一條 profiles 表的記錄。因此,當(dāng) users 表中的一條記錄被刪除時(shí),
被刪除記錄所擁有的 profiles 表中的關(guān)聯(lián)記錄也會(huì)被自動(dòng)刪除。

表定義
在 HAS_ONE 關(guān)聯(lián)中,要求外鍵放置在關(guān)聯(lián)表中

分別對(duì)應(yīng)FLEA_Db_TableDataGateway表中的 $hasOne,$hasMany,$manyToMany,$belongsTo 屬性

我們下面就用 老師,學(xué)生,學(xué)生檔案,班級(jí)的例子說(shuō)說(shuō)這幾個(gè)關(guān)系。

以下是SQL代碼:

//學(xué)生表
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`)
)//學(xué)生檔案表
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`)
)

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

//由于教師與班級(jí)是多對(duì)多關(guān)系,所有建立一個(gè)中間連接表以表示該關(guān)聯(lián)
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`)
)

現(xiàn)在,建好表之后,我們還要寫(xiě)幾個(gè)繼承自FLEA_Db_TableDataGateway父類(lèi)的類(lèi),以對(duì)應(yīng)數(shù)據(jù)庫(kù)中的Student,Teacher,Classes表(連接表不用了)如下:

//學(xué)生表對(duì)應(yīng)的類(lèi)
class Model_Student extends FLEA_Db_TableDataGateway{
var $tableName = ’student’;
var $primaryKey = ’stu_id’;

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

//教師表對(duì)應(yīng)的類(lèi)
class Model_Teacher extends FLEA_Db_TableDataGateway{
var $tableName = ‘teacher’;
var $primaryKey = ‘teacher_id’;

/*
這里確立了教師與班級(jí)的多對(duì)多關(guān)系,一個(gè)教師可以教多個(gè)班級(jí)
而一個(gè)班級(jí)也有多個(gè)教師
tableClass 指定要建立多對(duì)多關(guān)系的表的類(lèi)
joinTable 這個(gè)屬性要注意一個(gè),這個(gè)是指定教師表與班級(jí)表關(guān)系的連接表
由于二維表的數(shù)據(jù)結(jié)構(gòu)的原因,所以多對(duì)多關(guān)系要用一個(gè)中間表(即連接表)來(lái)表示
連接表中就指明兩個(gè)表各自的主鍵ID就可以了,以?xún)蓚€(gè)字段作復(fù)合主鍵,如不用復(fù)合
主鍵,就新增加一個(gè)字段作主鍵也可,這沒(méi)關(guān)系
*/
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’;

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

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

以上的代碼就建立好了關(guān)系了,現(xiàn)在只管使用就是了。
不過(guò)還提醒大家一點(diǎn),在每個(gè)關(guān)系里,都有一個(gè) ‘enabled’ 的屬性,如果設(shè)置為 false的話,則是將該關(guān)系禁掉,所以查詢(xún)出來(lái)的結(jié)果就沒(méi)有該關(guān)系的相應(yīng)數(shù)據(jù),這樣可以節(jié)省效率,按需要時(shí)才打開(kāi)相應(yīng)的關(guān)聯(lián),該屬性默認(rèn)為true 可以如下設(shè)置:

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

現(xiàn)在我們來(lái)測(cè)試一下數(shù)據(jù)。(事先自行插入幾行數(shù)據(jù)用以測(cè)試)

$classManager = FLEA::getSingleton(‘Model_Classes’);
$class =& $classManager->find(array(‘class_id’ => 1));
dump($class);
標(biāo)簽:,
-
国产91精品一区二区亚洲-国产精品国产三级国产播-久久国产精品免费一区六九堂-五月婷婷六月丁香激情网| 日韩午夜精品免费视频-真实国产精品自拍视频-91麻豆精产国品一二区灌醉-一本色道久久综合亚洲精品东京热| 日本免费精品一区二区三区四区-天天日天天射天天综合-国产在线精品免费av-高潮一区二区三区久久亚洲| 亚洲av午夜福利精品一区二区-久久精品国产亚洲熟女-亚洲综合五月婷婷六月丁香-久久国内精品自在自线91| 国内一级一厂片内射视频播放磨-国产乐播传媒在线观看-让你操水蜜桃在线观看-深夜三级视频在线观看| 成人国产精品一区二区香蕉-一区二区三区欧美日韩电影在线观看-午夜福利视频合集一区二区-人妻少妇被粗大爽在线| 日韩精品成人一区二区三区-亚洲综合中文字幕第一页-久久伊人亚洲中文字幕-花季传媒视频无限制观看| 久草免费福利在线播放-女同女同恋久久级三级-亚洲中文字母在线播放-91精品国产麻豆国产自产在| 天堂网日韩一区二区三区四区-自拍视频在线观看地址-91麻豆视频免费入口-国产理论片一区二区三区| 亚洲av一区二区三区av-国产av一区二区三区香蕉-久久超碰免费欧美人妻-九一精品人妻一区二区三区| 一区二区在线观看黑人-久久久精品人妻一区二区三区综合-成人内射国产免费观看-四虎在线免费视频观看| 国产精品亚洲精品日韩精品-狠狠爱婷婷网五月天久久-国产精品激情成色在人-国产农村妇女精品三级一区二区| 日韩精品人妻视频一区二区三区-国产经典一区二区三区四区-亚洲中文视频免费在线观看-美女自拍大秀福利视频| 亚洲五月六月丁香缴情久久-国产精品国产三级国产一区-人妻中文字幕一区二区三区四区-精品在线视频尤物女神| 在线播放口爆吞精美女-亚洲精品中文字幕日韩在线-亚洲福利视频免费在线观看-精品国产自拍免费视频| 亚洲不卡福利在线视频-亚洲一级特大黄色小视频-日本久久一级二级三级-国产精品剧情av在线观看| 亚洲一区日韩精品在线观看-精品人妻少妇一区二区免费蜜桃-国产三区四区五区在线观看-真正国产熟女免费视频| 亚洲国产综合成人久久-日本一区二区三区精彩视频-激情四射五月天亚洲婷婷-人妻高清视频一区二区三区| 黄色av日韩在线观看-偷拍自拍在线免费视频-色偷偷偷亚洲综合网另类-国产成人免费综合视频| 日韩成人深夜免费在线观看-成人av一区二区在线播放-日韩无套内射免费精品-国产精品一区白嫩在线观看| 亚洲av高清网站夜夜去-拍国产乱人伦偷精品视频-成人日韩欧美在线观看-无遮挡国产精品一级二级三级视频| 亚州一区二区五码在线观看-97在线视频免费公开-小明久久国内精品自线-人妻av天堂综合一区| 国产女主播在线播放福利-日韩中文字幕综合第二页-av男人的天堂免费观看-国产乱码免费一区二区三区不卡| 国产精品综合亚洲综合-精品人妻码一区二区三区红楼视频-亚洲精品一品区二品区三区-日韩欧美色精品噜噜噜| 午夜福利国产在线播放-中文字幕日产乱码久久正宗-亚洲精品成人久久69-99精品国产免费久久| 久久亚洲国产高清av一级-免费国产精品自偷自偷免费看-日本a级特黄三级三级三级-欧美日韩一区二区中文字幕高清视频| 少妇人妻午夜精品视频-亚洲乱妇老熟女爽到潮的片-最新国产黄色一区二区-亚洲一区国产精品喷潮| 极品国产粉嫩18尤物在线播放-中文字幕av人妻在线-国产一区二区三区乱码在线-最新亚洲av日韩av| 国产亚洲欧美日韩俺去啦-91香蕉国产极品在线播放-国产夫妻生活自拍视频-永久免费的成年视频网| 日韩精品一区二区蜜桃免费视频-色综合视频一区二区三区-欧美一级黄片视频在线播放-国产精品视频一区二区色戒| 久久精品国产久精国产爱-久久超碰97中文字幕-久热这里只有精品视频一区-日韩av在线免费观看| 日韩有码中文在线视频-少妇我被躁爽到高潮在线观看-精品丰满人妻一区二区三区-亚洲天堂高清在线播放| 正在播放后入极品美少妇-亚洲一区二区三区自拍麻豆-国产亚洲精品成人久久-av老司机亚洲精品久久| 亚洲少妇插进去综合网-久草免费在线人妻视频-丰满人妻熟妇乱精品视频-日韩极品精品视频免费在线观看| 国产福利一区在线观看蜜臀av-最新天堂中文在线官网-成人精品天堂一区二区三区-国产精品久久久久久久人貌| 蜜桃臀欧美日韩国产精品-最近欧美日韩一区二区-亚洲综合成人一区二区三区-免费五十路熟妇在线视频| 亚洲性生活免费播放av-成人深夜在线免费观看-久久国产精品亚洲精品-黄色大片亚洲黄色大片| 亚洲熟女少妇av麻豆-男人一天堂精品国产乱码-欧美精品高清在线播放-亚洲国产午夜福利精品| 精品国产一区二区三区色搞-国产极品尤物精品视频-亚洲中文字幕乱码亚洲-午夜日本福利在线观看| 久久精品蜜桃一区二区三区-久久99亚洲精品久久-激情文化变态另类快播-国产成人免费永久在线平台| 日韩熟女av在线观看-中文字幕人妻丝祙乱一区三区-亚洲国产精品第一区二区三区-欧美制服丝袜一区二区三区|