資料庫查詢方法的一種設想? |
尚未結案
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
各位先進好! 我有一個想法:在資料庫查詢時,查找內容輸入在Edit1‧text,查詢時首先從最常用的表中取出所有的fields放到一個 array 中,將 locate 的 keyfidels 設為這個array, 然後看是否在這個table 中查找到。
Locate(array1,edit1.text,false);
如果沒找到,則從資料庫中取出所有的tables,然後每個表依前面的方法一一查找。
程式中可以設定:如果一個查找內容在某一個表中找到,則這個表的 ReferenceValue 加1(可以寫在 windows 的 registry ),每次查找從ReferenceValue最大的一個開始。
這樣做主要是想簡化查找設計,否則"查找姓名","查找學號","查找時間"等等一大堆,感覺有些麻煩。
這種想法對不對,或者有好的方法請各位先進指引,謝謝!
(DB: Access ,資料庫中records最多的一個表有 10 萬多records)
發表人 - mathewzhao 於 2003/07/01 19:13:19
|
silence
一般會員 發表:9 回覆:17 積分:10 註冊:2003-06-04 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
hi, mathewzhao, 你的想法是不錯, 但是這樣的資料表設計是不是就是有問題的呢, 這點你要先想清楚, 怎麼會要查的資料不在你要查找的資料表中時, 還要去其他的資料表查呢, 這樣的結構是不正確的!! locate 的問題點, silence兄已很明白的告訴你, 速度是有問題的, 因為 locate 是 dataset 的功能, 是先下載資料到 client 再來查找, 不如在下 sql command 時就將查找的資料明確地給資料庫處理, 若是速度慢的話, 再由 index 下手, 針對 where 條件式中的欄位加上索引來加速查找的速度!! 發表人 - timhuang 於 2003/07/02 00:09:41
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
1.一個TABLE有十萬筆,而你的資料庫竟然是用ACCESS,嘿嘿~~我只能說你真的不怕死 2.LOCATE的原理是把全部的資料筆數LOAD到記憶體中,當你記憶體不夠時,會逼的程式幫你做虛擬記憶體,這樣反而更慢 3.依你的資料結構看來,本人覺得用 SQL 會更快 以上 --
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
引言: 我的想法是希望不用設定查找類型,像Google一樣,可以不用設查找範圍 (例如:資訊,電影,音樂等)直接在資料庫查詢,既然這樣不行,不知有 沒有其它的方法可以做到,謝謝!這個也是跟你的資料結構有關~~不然你的SQL要怎麼下~~ 所以如果你要做到以上的效果~~你必須從你的結構去下手~~ 引言:我對Access不熟,不知前輩Jasonwong能否說得清楚些,謝謝!因為 ACCESS 是屬於 DESKTOP 型的資料庫~ DESKTOP型的都有一個很嚴重的缺點~~就是索引檔很容易就掛掉了~~只要索引檔掛掉~~你的資料庫就形同廢掉了~~所以你在網路可以找到修復ACCESS索引檔的程式~~ 所以看你的資料量而言(十萬筆)~~如果不設索引~~你這樣搜尋資料會很慢~~設了又怕掛掉~~所以我是建議不要用ACCESS~~而去改用其他的~~像 InterBase 我就覺得不錯~~又是免費的~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |