專利名稱:在數(shù)據(jù)庫中檢索數(shù)據(jù)和向撥號上網(wǎng)用戶分配ip地址的方法
所屬領(lǐng)域本發(fā)明涉及一種在數(shù)據(jù)庫中快速檢索數(shù)據(jù)和向撥號上網(wǎng)用戶快速分配IP地址的方法,確切地說,涉及一種在數(shù)據(jù)庫中使用鏈表檢索數(shù)據(jù)的方法,以及如何向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,屬于數(shù)據(jù)庫的應用技術(shù)領(lǐng)域。
例如,呼叫管理中心(CMC)是一用于對撥號上網(wǎng)的端口進行批發(fā)、管理的系統(tǒng),其中有一功能是動態(tài)分配IP地址,以及把所有的IP地址統(tǒng)一管理起來,在用戶上網(wǎng)時動態(tài)地分配一個IP地址給其使用。此時,如要檢索數(shù)據(jù)(即IP地址)時,必須滿足以下兩點1、檢索的條件是沒有被占用的IP地址,且每次只需檢索出一個IP地址,即一條記錄;而當該IP地址被檢索出來以后,將被分配給用戶使用,就不再符合被檢索的條件。這符合上面所說的前一種情況。由于呼叫管理中心希望能夠?qū)崟r分配空閑的IP地址給用戶使用,所以其對檢索的速度要求較高;如采用游標,肯定不能滿足要求。2、由于線路延遲等多種不確定的因素,當一個IP地址被釋放后,并不能確實保證該IP地址已經(jīng)沒有用戶在使用,即其真正處于空閑狀態(tài),而此時如將該IP地址再次被分配出去,將不能正常工作,故應盡可能地分配空閑時間最長的IP地址。這也是使用游標時不能實現(xiàn)的。
本發(fā)明的另一目的是提供一種向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,以使呼叫管理中心對于撥號上網(wǎng)的用戶和空閑的IP地址的管理更加高效。
本發(fā)明在數(shù)據(jù)庫中使用鏈表檢索數(shù)據(jù)的方法是這樣實現(xiàn)的包括有下列步驟(1)首先,根據(jù)符合條件的數(shù)據(jù)(或記錄)的狀況生成兩個數(shù)據(jù)庫表鏈表和節(jié)點表,以建立鏈表結(jié)構(gòu);其中鏈表的結(jié)構(gòu)是由下述四個字段所組成主鍵表示該一條鏈的代號,鏈表頭表示該鏈的第一個節(jié)點的編號,鏈表尾表示該鏈的最后一個節(jié)點的編號,本鏈表的節(jié)點數(shù)表示該鏈所擁有的節(jié)點總數(shù);其中節(jié)點表的結(jié)構(gòu)是由下述四個字段所組成本節(jié)點編號表示該節(jié)點的編號,下一個節(jié)點表示該節(jié)點之后的下一個節(jié)點的編號,本節(jié)點所屬鏈表示該節(jié)點屬于哪一條鏈的代號,數(shù)據(jù)表示該節(jié)點的數(shù)據(jù)數(shù)值;(2)檢索數(shù)據(jù)時,只需取出鏈表頭節(jié)點即可,同時,執(zhí)行下列操作修改鏈表,將鏈表頭改為原來的第二個節(jié)點,即將第一個節(jié)點從鏈表中去掉,并將鏈表的節(jié)點總數(shù)減1;(3)當有滿足條件的數(shù)據(jù)需要加入該鏈表時,則將其插入鏈表尾,具體操作是在節(jié)點表中是將鏈表尾節(jié)點從指向空改為指向新插入的數(shù)據(jù)所處于的節(jié)點編號,在鏈表中是取出鏈表尾,將該鏈表尾改為指向上述新插入的數(shù)據(jù)所處于的節(jié)點;再將鏈表的節(jié)點總數(shù)加1。
上述兩個數(shù)據(jù)庫表中,除了鏈表中的“本鏈表的節(jié)點數(shù)”中的數(shù)據(jù)為包括整數(shù)類型和浮點類型的數(shù)值類型以外,其余各字段可以為任何數(shù)據(jù)類型。
上述兩個數(shù)據(jù)庫表中的8個組成部分均為不允許空值的數(shù)據(jù)。
當上述被檢索的數(shù)據(jù),還需在之后重新加入到原數(shù)據(jù)庫時,可將上述(2)、(3)兩個步驟合并成一個步驟(2)取出當前的鏈表頭,同時更新鏈表,將鏈表頭(first)改為原來的第二個節(jié)點,并將取出的該鏈表頭移至鏈表尾。
本發(fā)明向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法是這樣實現(xiàn)的包括有下列步驟(1)首先,生成兩個數(shù)據(jù)庫表IP地址段信息表和地址項信息表,以建立鏈表結(jié)構(gòu);其中IP地址段信息表的結(jié)構(gòu)是由下述四個字段所組成本IP地址段的編號表示該IP地址段的代號,空閑地址鏈表頭表示該IP地址段的第一個空閑地址的編號,空閑地址鏈表尾表示該IP地址段的最后一個空閑地址的編號,本IP地址段尚未分配出去的IP地址的數(shù)量表示該IP地址段所擁有的尚未分配出去的空閑IP地址的總數(shù);其中地址項信息表的結(jié)構(gòu)是由下述三個字段所組成本IP地址所屬地址段的編號,空閑的IP地址,下一個空閑的IP地址。
(2)用戶在撥號上網(wǎng)時,需要一個ip地址,在檢索該ip地址時,只需取出鏈表頭節(jié)點即可,同時,執(zhí)行下列操作修改鏈表,將鏈表頭改為原來的第二個節(jié)點,即將第一個節(jié)點從鏈表中去掉,并將鏈表的節(jié)點總數(shù)減1;(3)當用戶下網(wǎng)時,將其所使用的該ip地址釋放,并將該ip地址插入鏈表尾,具體操作是在節(jié)點表中,將鏈表尾節(jié)點從指向空改為指向新插入的ip地址所處于的節(jié)點編號;在鏈表中取出鏈表尾,并將該鏈表尾改為指向上述新插入的ip地址所處于的節(jié)點;再將鏈表的節(jié)點總數(shù)加1。
上述IP地址段信息表中的“本IP地址段的編號”與地址項信息表中的“本IP地址所屬地址段的編號”兩者的字母代號是完全相同的,以標明上述兩個表之間是屬于同一個鏈表的主從關(guān)系。
上述兩個數(shù)據(jù)庫表中的“本IP地址段的編號(bLock_id)”和“本IP地址段尚未分配出去的IP地址的數(shù)量(remain_ip)”的數(shù)據(jù)類型均為整數(shù),其余的5個組成部分的數(shù)據(jù)類型均為4比特的二進制數(shù)。
上述兩個數(shù)據(jù)庫表中的7個組成部分均為不允許空值的數(shù)據(jù)。
“鏈表”是一種在程序設(shè)計中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu),本發(fā)明的方法是在數(shù)據(jù)庫中利用該“鏈表”數(shù)據(jù)結(jié)構(gòu),把符合相關(guān)檢索條件的各個數(shù)據(jù)進行順序排列而連成一條數(shù)據(jù)“鏈”。當檢索數(shù)據(jù)時,只需從該鏈表頭取出所在的數(shù)據(jù),之后再把處理過的數(shù)據(jù)或其他滿足相關(guān)條件的數(shù)據(jù)或記錄重新放回到鏈表尾,這樣既可以迅速定位一條數(shù)據(jù)或記錄,又可實現(xiàn)順序檢索;避免了使用效率較低的游標,提高了查找效率。所以,本發(fā)明使用鏈表在數(shù)據(jù)庫中檢索數(shù)據(jù)是一種頗有成效的快速檢索方法。
利用本發(fā)明“鏈表”結(jié)構(gòu)的方法,可以在數(shù)據(jù)庫中迅速定位空閑的IP地址,并能將用戶釋放的IP地址放回到鏈表尾,實現(xiàn)順序檢索,保證撥號上網(wǎng)用戶的及時應用,滿足了CMC系統(tǒng)的要求。
圖2是本發(fā)明的鏈表結(jié)構(gòu)中節(jié)點表的示意圖。
圖3是應用本發(fā)明的鏈表進行檢索的實施例示意圖。
圖4是利用鏈表結(jié)構(gòu)動態(tài)分配IP地址所需建立的地址段信息表的示意圖。
圖5是利用鏈表結(jié)構(gòu)動態(tài)分配IP地址所需建立的地址項信息表的示意圖。
上述兩個數(shù)據(jù)庫表中,除了鏈表中的“本鏈表的節(jié)點數(shù)”中的數(shù)據(jù)可為包括整數(shù)類型和浮點類型的數(shù)值類型以外,其余各字段可以為任何數(shù)據(jù)類型。而且,該兩個數(shù)據(jù)庫表中的8個組成部分均為不允許空值的數(shù)據(jù)。
下面結(jié)合圖3介紹本發(fā)明的一個實施例。
首先,假設(shè)初始狀態(tài)有三條記錄符合檢索條件,將其生成一條鏈表,具體操作的程序語句如下insert tbl_chain(chain_id,first,last,notenum)values(1,1,3,3)注解在鏈表(父表)中插入一條記錄,表示一條鏈表,該鏈表的編號為1,第一個節(jié)點的編號為1,最后一個節(jié)點的編號為3,總共有3個節(jié)點。insert tbl_chainote(note_id,next,chain_id,data)values(1,2,1,100)
注解在節(jié)點表(子表)中插入第1個節(jié)點,編號為1,下一個節(jié)點的編號為2,從屬于編號為1的鏈表,數(shù)據(jù)值為100。insert tbl_chainnote(note_id,next,chain_id,data)values(2,3,1,100)注解在節(jié)點表(子表)中插入第2個節(jié)點,編號為2,下一個節(jié)點的編號為3,從屬于編號為1的鏈表,數(shù)據(jù)值為100。insert tbl_chainnote(note_id,next,chain_id,data)values(3,null,1,100)注解在節(jié)點表(子表)中插入第3個節(jié)點,編號為1,下一個節(jié)點的編號為空,即沒有下一個節(jié)點,從屬于編號為1的鏈表,數(shù)據(jù)值為100,上面的null表示空。
在檢索數(shù)據(jù)時,只需取出鏈表頭節(jié)點即可假設(shè)該鏈表的編號(id)為1,所要執(zhí)行的sql語句為修改父表將鏈表頭(first)改為原來的第二個節(jié)點,并將鏈表的節(jié)點總數(shù)(notenum)減1declare @first int/*定義一個變量@first,用于保存被檢索出來的數(shù)據(jù)*/select @first=first from tbl_chain where chain_id=1/*取出當前的鏈表頭*/update tbl_chain set first=(select next from tbl_chainnote wherenote_id=@first),notenum=notenum-1 where chain_id=1/*并將父表中的鏈表頭指向第二個節(jié)點,即將第一個節(jié)點從鏈表中去掉,并將節(jié)點數(shù)減1*/return @first/*返回檢索出來的數(shù)據(jù),即將該數(shù)據(jù)傳送給調(diào)用者*/假設(shè)該被檢索的數(shù)據(jù)項已經(jīng)使用完畢,如需重新將其插入鏈表尾時,則進行下列操作假設(shè)該鏈表的編號(id)為1,要插入的節(jié)點的編號(id)為4,數(shù)據(jù)為100,則將子表中的鏈表尾節(jié)點由指向空改為指向新插入的第4個節(jié)點,并將父表中的鏈表尾(last)也指向第4個節(jié)點,以及將該鏈表的節(jié)點總數(shù)(notenum)加1declare @last int/*定義一個變量@last,用于保存當前的鏈表尾*/select @last=last from tbl_chain where chain_id=1/*取出當前的鏈表尾*/update tbl_chain set last=4,notenum=notenum+1 where chain_id=1/*并將父表中的鏈表尾(last)也指向第4個節(jié)點,以及將該鏈表的節(jié)點總數(shù)(notenum)加1*/update tbl_chainnote set next=4 where note_id=@last/*將子表中的鏈表尾節(jié)點由指向空改為指向新插入的第4個節(jié)點*/上述使用鏈表檢索數(shù)據(jù)的方法步驟中有一從鏈中增加、刪除鏈表節(jié)點的過程,是適用于下列情況當數(shù)據(jù)項被檢索后,暫時不符合相關(guān)的檢索條件,故先將其從鏈表中去掉,待到該數(shù)據(jù)項符合條件時再添加上。如果該數(shù)據(jù)項被檢索后,還是符合相關(guān)的檢索條件時,則可將上面(2)、(3)兩個步驟合二為一,不需要從鏈中將該檢索到的數(shù)據(jù)所在的節(jié)點刪除,只需將該節(jié)點從鏈表頭移到鏈表尾即可。其主要是省略了對鏈表節(jié)點數(shù)作±1的操作,具體操作步驟如下(2)取出當前的鏈表頭,同時更新鏈表,將鏈表頭(first)改為原來的第二個節(jié)點,并將取出的該鏈表頭移至鏈表尾。declare @first int,@last int/*定義兩個變量@first和@last,前者用于保存被檢索出來的數(shù)據(jù),后者用于保存當前的鏈表尾*/select @first=first,@last=last from tbl_chain where chain_id=1/*取出當前的鏈表頭,更新鏈表,將鏈表頭移至鏈表尾*/update tbl_chain set first=(select next from tbl_chainnote wherenote_id=@first),last=@first where chain_id=1/*更新鏈表頭為第二個節(jié)點,并將父表中的鏈表尾(last)也指向原來的第1個節(jié)點*/update tbl_chainnote set next=@first where note_id=@lastreturn @first/*將子表中的鏈表尾節(jié)點由指向空改為指向原來的第1個節(jié)點*/通過上述方法,可以在數(shù)據(jù)庫中建立鏈表,快速地檢索數(shù)據(jù),并實現(xiàn)順序檢索。
本發(fā)明又是一種向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,包括有下列步驟(1)首先,生成兩個數(shù)據(jù)庫表IP地址段信息表(又稱父表,參見圖4)和地址項信息表(又稱子表,參見圖5),以建立鏈表結(jié)構(gòu);其中IP地址段信息表的結(jié)構(gòu)是由下述四個部分所組成本IP地址段的編號(列名block_id)表示該IP地址段的代號,空閑地址鏈表頭(列名first_ip)表示該IP地址段的第一個空閑地址的編號,空閑地址鏈表尾(列名last_ip)表示該IP地址段的最后一個空閑地址的編號,本IP地址段尚未分配出去的IP地址的數(shù)量(列名remain_ip)表示該IP地址段所擁有的尚未分配出去的空閑IP地址的總數(shù);其中地址項信息表的結(jié)構(gòu)是由下述三個部分所組成本IP地址所屬地址段的編號(列名block_id),空閑的IP地址(列名ip_addr),下一個空閑的IP地址(列名next_id);(2)用戶在撥號上網(wǎng)時,需要一個ip地址,在檢索該ip地址時,只需取出鏈表頭節(jié)點即可,同時,執(zhí)行下列操作修改鏈表,將鏈表頭改為原來的第二個節(jié)點,即將第一個節(jié)點從鏈表中去掉,并將鏈表的節(jié)點總數(shù)減1;(3)當用戶下網(wǎng)時,將其所使用的該ip地址釋放,并將該ip地址插入鏈表尾,具體操作是在節(jié)點表中,將鏈表尾節(jié)點從指向空改為指向新插入的ip地址所處于的節(jié)點編號;在鏈表中取出鏈表尾,并將該鏈表尾改為指向上述新插入的ip地址所處于的節(jié)點;再將鏈表的節(jié)點總數(shù)加1。
需要說明的是,上述IP地址段信息表中的“本IP地址段的編號”(列名block_id)與地址項信息表中的“本IP地址所屬地址段的編號”(列名block_id)兩者的字母代號是完全相同的,通過該block_id標明上述兩個表之間是屬于同一個鏈表的主從關(guān)系,也指明了兩者共同表示的鏈表的編號。
上述兩個數(shù)據(jù)庫表中的“本IP地址段的編號(block_id)”和“本IP地址段尚未分配出去的IP地址的數(shù)量(remain_ip)”的數(shù)據(jù)類型均為整數(shù)(int),其余的5個組成部分的數(shù)據(jù)類型均為4字節(jié)的二進制數(shù)(binary(4))。且兩個數(shù)據(jù)庫表中的7個組成部分均為不允許空值的數(shù)據(jù)。
在IP地址段信息表(tbl_ipblock)中,每一條記錄都是表示一個地址段,相當于一條鏈表。該鏈表所對應的所有IP地址(節(jié)點),均在地址項信息表(tbl_iplist)中,且由于空閑的IP地址(ip_addr)本身即為該節(jié)點的數(shù)據(jù)值,故與前述的鏈表結(jié)構(gòu)比較,可以省去data字段。
下面介紹應用該方法快速檢索IP地址的一個實施例,以便更好地說明之初始化時,先將該地址段的所有地址都添加到IP地址段信息表(父表,tbl_ipblock)中,并建好一條鏈表。
1、當用戶申請IP地址時,只要將鏈表頭從第一個地址分離出來即可。假設(shè)該地址段的編號(block_id)是1,所執(zhí)行的操作為取出鏈表中的第一個地址,修改父表中的鏈表頭為第二個地址,將本地址段信息表tbl_ipblock中尚未分配出去的ip地址數(shù)目(remain_ip)減1declare @first_ip binary(4)/*定義一個變量@first_ip,用于保存被檢索出來的ip地址*/select @first_ip=first_ip from tbl_ipblock where block_id=1/*取出鏈表中的第一個地址,保存在變量@first_ip中*/update tbl_ipblock set first_ip=(select next_ip from tbl_iplist whereblock_id=@first_ip),remain_ip=remain_ip-1 where block_id=1/*修改父表中的鏈表頭為第二個地址,將本地址段信息表tbl_ipblock中尚未分配出去的ip地址數(shù)目(remain_ip)減1*/2、當用戶下網(wǎng)而釋放ip地址時,因為該地址在IP地址段信息表(tbl_ipblock)中已經(jīng)存在,只需將其追加到鏈表尾即可。假設(shè)該地址段的block_id是1,新釋放的的ip地址為0x11111111,所執(zhí)行的操作為原來的鏈表尾所指向的下一個地址為空,即沒有下一個地址,現(xiàn)在將其下一個地址指向新釋放的ip地址,而新釋放的ip地址所指向的下一個地址為空,并且將父表中的鏈表尾指向新釋放的ip地址;再將本地址段信息表tbl_ipblock中尚未分配出去的ip地址數(shù)目(remain_ip)加1declare @last_ip binary(4)/*定義一個變量@last_ip,用于保存該鏈表中當前鏈表尾的ip地址*/select @last_ip=last_ip from tbl_ipblock where block_id=1/*取出該鏈表中當前鏈表尾的ip地址,保存在變量@last_ip中*/update tbl_ipblock set last_ip=0x11111111,remain_ip=remain_ip+1 whereblock_id=1/*將父表中的鏈表尾(last_ip)指向新釋放的ip地址;將尚未分配出去的ip地址數(shù)目(remain_ip)加1*/update tbl_iplist set next_ip=0x11111111 where ipaddr=@last_ip/*將子表中的下一個空閑的ip地址(next_ip)改為新釋放的ip地址*/這樣,就可實現(xiàn)IP地址的快速檢索,并且滿足呼叫管理中心CMC系統(tǒng)的有關(guān)要求。
本發(fā)明的方法已經(jīng)在申請人的接入服務器中作了長時間的試驗運行,完全實現(xiàn)了發(fā)明目的,運行效果良好。
權(quán)利要求
1.一種在數(shù)據(jù)庫中使用鏈表檢索數(shù)據(jù)的方法,其特征在于包括有下列步驟(1)首先,根據(jù)符合條件的數(shù)據(jù)的狀況生成兩個數(shù)據(jù)庫表鏈表和節(jié)點表,以建立鏈表結(jié)構(gòu);其中鏈表的結(jié)構(gòu)是由下述四個字段所組成主鍵表示該一條鏈的代號,鏈表頭表示該鏈的第一個節(jié)點的編號,鏈表尾表示該鏈的最后一個節(jié)點的編號,本鏈表的節(jié)點數(shù)表示該鏈所擁有的節(jié)點總數(shù);其中節(jié)點表的結(jié)構(gòu)是由下述四個字段所組成本節(jié)點編號表示該節(jié)點的編號,下一個節(jié)點表示該節(jié)點之后的下一個節(jié)點的編號,本節(jié)點所屬鏈表示該節(jié)點屬于哪一條鏈的代號,數(shù)據(jù)表示該節(jié)點的數(shù)據(jù)數(shù)值;(2)檢索數(shù)據(jù)時,只需取出鏈表頭節(jié)點即可,同時,執(zhí)行下列操作修改鏈表,將鏈表頭改為原來的第二個節(jié)點,即將第一個節(jié)點從鏈表中去掉,并將鏈表的節(jié)點總數(shù)減1;(3)當有滿足條件的數(shù)據(jù)需要加入該鏈表時,則將其插入鏈表尾,具體操作是在節(jié)點表中將鏈表尾節(jié)點從指向空改為指向新插入的數(shù)據(jù)所處于的節(jié)點編號,在鏈表中是取出鏈表尾,將該鏈表尾改為指向上述新插入的數(shù)據(jù)所處于的節(jié)點;再將鏈表的節(jié)點總數(shù)加1。
2.根據(jù)權(quán)利要求1所述的在數(shù)據(jù)庫中使用鏈表檢索數(shù)據(jù)的方法,其特征在于上述兩個數(shù)據(jù)庫表中,除了鏈表中的“本鏈表的節(jié)點數(shù)”中的數(shù)據(jù)為包括整數(shù)類型和浮點類型的數(shù)值類型以外,其余各字段可以為任何數(shù)據(jù)類型。
3.根據(jù)權(quán)利要求1所述的在數(shù)據(jù)庫中使用鏈表檢索數(shù)據(jù)的方法,其特征在于上述兩個數(shù)據(jù)庫表中的8個組成部分均為不允許空值的數(shù)據(jù)或記錄。
4.根據(jù)權(quán)利要求1所述的在數(shù)據(jù)庫中使用鏈表檢索數(shù)據(jù)的方法,其特征在于當上述被檢索的數(shù)據(jù),還需在之后重新加入到原數(shù)據(jù)庫時,可將上述(2)、(3)兩個步驟合并成一個步驟(2)取出當前的鏈表頭,同時更新鏈表,將鏈表頭改為原來的第二個節(jié)點,并將取出的該鏈表頭移至鏈表尾。
5.一種向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,其特征在于包括有下列步驟(1)首先,生成兩個數(shù)據(jù)庫表IP地址段信息表和地址項信息表,以建立鏈表結(jié)構(gòu);其中IP地址段信息表的結(jié)構(gòu)是由下述四個字段所組成本IP地址段的編號表示該IP地址段的代號,空閑地址鏈表頭表示該IP地址段的第一個空閑地址的編號,空閑地址鏈表尾表示該IP地址段的最后一個空閑地址的編號,本IP地址段尚未分配出去的IP地址的數(shù)量表示該IP地址段所擁有的尚未分配出去的空閑IP地址的總數(shù);其中地址項信息表的結(jié)構(gòu)是由下述三個字段所組成本IP地址所屬地址段的編號,空閑的IP地址,下一個空閑的IP地址;(2)用戶在撥號上網(wǎng)時,需要一個ip地址,在檢索該ip地址時,只需取出鏈表頭節(jié)點即可,同時,執(zhí)行下列操作修改鏈表,將鏈表頭改為原來的第二個節(jié)點,即將第一個節(jié)點從鏈表中去掉,并將鏈表的節(jié)點總數(shù)減1;(3)當用戶下網(wǎng)時,將其所使用的該ip地址釋放,并將該ip地址插入鏈表尾,具體操作是在節(jié)點表中,將鏈表尾節(jié)點從指向空改為指向新插入的ip地址所處于的節(jié)點編號;在鏈表中取出鏈表尾,并將該鏈表尾改為指向上述新插入的ip地址所處于的節(jié)點;再將鏈表的節(jié)點總數(shù)加1。
6.根據(jù)權(quán)利要求5所述的向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,其特征在于上述IP地址段信息表中的“本IP地址段的編號”與地址項信息表中的“本IP地址所屬地址段的編號”兩者的字母代號是完全相同的,以標明上述兩個表之間是屬于同一個鏈表的主從關(guān)系。
7.根據(jù)權(quán)利要求5所述的向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,其特征在于上述兩個數(shù)據(jù)庫表中的“本IP地址段的編號”和“本IP地址段尚未分配出去的IP地址的數(shù)量”的數(shù)據(jù)類型均為整數(shù),其余的5個組成部分的數(shù)據(jù)類型均為4比特的二進制數(shù)。
8.根據(jù)權(quán)利要求5所述的向撥號上網(wǎng)的用戶快速分配空閑的IP地址的方法,其特征在于上述兩個數(shù)據(jù)庫表中的7個組成部分均為不允許空值的數(shù)據(jù)。
全文摘要
一種在數(shù)據(jù)庫中檢索數(shù)據(jù)和向撥號上網(wǎng)用戶分配IP地址的方法,其步驟為先將符合條件的數(shù)據(jù)生成兩個數(shù)據(jù)庫表鏈表和節(jié)點表,建立鏈表結(jié)構(gòu);其中鏈表由四個字段組成表示該一條鏈的代號的主鍵,表示該鏈第一個節(jié)點的鏈表頭,表示該鏈最后一個節(jié)點的鏈表尾,表示該鏈所有節(jié)點總數(shù)的本鏈表的節(jié)點數(shù);節(jié)點表也由四個字段組成本節(jié)點編號,下一個節(jié)點,本節(jié)點所屬鏈,數(shù)據(jù)。檢索數(shù)據(jù)時,只需取出鏈表頭節(jié)點即可,同時,修改鏈表將鏈表頭改為原來的第二個節(jié)點,將鏈表的節(jié)點總數(shù)減1。有數(shù)據(jù)要加入該鏈表時,則將其插入鏈表尾,將鏈表尾改為指向新插入數(shù)據(jù)所處的節(jié)點;再將鏈表的節(jié)點總數(shù)加1。該方法可用于快速分配IP地址,供用戶撥號上網(wǎng)時使用。
文檔編號G06F17/30GK1400549SQ01123949
公開日2003年3月5日 申請日期2001年8月7日 優(yōu)先權(quán)日2001年8月7日
發(fā)明者李傳峰, 蘇玉濤 申請人:華為技術(shù)有限公司