14.3 創(chuàng)建主要──明細(xì)數(shù)據(jù)庫應(yīng)用
我們前面在介紹的基于單個數(shù)據(jù)庫表的數(shù)據(jù)庫應(yīng)用程序只能對數(shù)據(jù)庫表進(jìn)行簡單的管理,大多數(shù)只用來瀏覽單個數(shù)據(jù)庫表中的記錄信息,如果我們想瀏覽多個相關(guān)的數(shù)據(jù)庫表中的記錄信息,就必須要創(chuàng)建主要──明細(xì)型數(shù)據(jù)庫應(yīng)用程序。
在主要──明細(xì)型數(shù)據(jù)庫應(yīng)用程序中,一個數(shù)據(jù)庫表作為主要表,其中存放著綜合信息,其他的數(shù)據(jù)庫表和主要數(shù)據(jù)庫表相關(guān)聯(lián),它們當(dāng)中存放著更詳細(xì)的信息。例如,當(dāng)數(shù)據(jù)庫表Customer.DB作為主表,它包含著客戶的綜合信息如編號、姓名、所在公司的名稱等等。而數(shù)據(jù)庫表Orders.DB中包含著每個客戶的訂貨單的詳細(xì)信息,如訂單號、發(fā)貨日期、起運日期、發(fā)貨目的地等信息,這樣當(dāng)在Customer.DB表中查看某一位客戶時,利用其中的字段CustNo與Orders.DB表發(fā)生聯(lián)系,自動地從Orders.DB表中檢索出這位客戶曾經(jīng)發(fā)來的所有訂貨單的詳細(xì)信息。主要──明細(xì)型數(shù)據(jù)庫體現(xiàn)了關(guān)系數(shù)據(jù)庫的特點,即獨立的數(shù)據(jù)庫表之間基于它們共同的字段而發(fā)生聯(lián)系。在這里Customer.DB和Orders.DB擁有一個共同的字段CustNo。
14.3.1 一對多關(guān)系的主要──明細(xì)型數(shù)據(jù)庫應(yīng)用程序
主要和明細(xì)數(shù)據(jù)庫表之間存在一對多的關(guān)系,意思是說對于主表中的一條記錄,在明細(xì)表中有多條記錄與之對應(yīng)。例如,創(chuàng)建一個主要──明細(xì)型數(shù)據(jù)庫應(yīng)用程序,其包括兩個表Customer.DB和Orders.DB,它們分別作為主表和明細(xì)表,創(chuàng)建好的應(yīng)用如圖14.5所示,窗體中各部件的屬性設(shè)置
表14.2 主要──明細(xì)型數(shù)據(jù)庫應(yīng)用中各部件的屬性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部 件 屬 性 屬 性 值 注 釋
──────────────────────────────────
Table1 Active True
(主表) DatabaseName DBDEMOS
TableName CUSTOMER.DB
──────────────────────────────────
DataSource1 DataSet Table1
AutoEdit False
──────────────────────────────────
Table2 Active True
(明細(xì)表) DatabaseName DBDEMOS
TableName ORDERS.DB
IndexFieldNames CUSTNO 指定字段CUSTNO作為
Table2中的索引字段
MasterField CUSTNO 指定與主表發(fā)生聯(lián)系
的字段
MasterSource DataSource1 說明與主表相連接的
數(shù)據(jù)源即DataSource
──────────────────────────────────
DataSource2 DataSet Table2
AutoEdit False
──────────────────────────────────
DBGrid1 DataSource DataSource1
(對應(yīng)主表)
──────────────────────────────────
DBGrid2 DataSource DataSource2
(對應(yīng)明細(xì)表)
TableName ORDERS.DB
──────────────────────────────────
DBNavigator1 DataSource DataSource1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一對多關(guān)系是非常普遍的關(guān)系。即便是簡單的名字/ 地址數(shù)據(jù)庫都有一對多的關(guān)系,因為一個人可能不止一個地址:家庭地址、工作地址、還可能有別墅地址。在本例中,公司的一個客戶常常有多個訂貨單,當(dāng)我們單擊DBNavigator1中的向前、向后按鈕時,會移動DBGrid1中的記錄指針,而在DBGrid2中會自動顯示與DBGridl 中當(dāng)前記錄相關(guān)的多條記錄,即顯示一個客戶的信息時,同時會顯示該客戶的所有訂貨單的詳細(xì)信息。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |