我有如下訂貨明細table,訂單code,存儲順序,顯示順序,商品code...等等。其中訂單code和存儲順序是pk。在實際的系統(tǒng)中,給定一個訂單code,然后按照顯示順序顯示詳細的一條一條訂貨信息。如:
訂單code:0001
1 a鉛筆 10支
2 b鉛筆 2支
3 英雄鋼筆 15支
...
一個訂單最多可以用99條這樣的訂貨信息,整個table有幾十萬條數(shù)據(jù)。針對這個表,我可以進行一系列的修改,比如在1號前面追加一行:c鉛筆 4支
這樣,追加行的顯示順序就變成1,下面的數(shù)據(jù)的顯示順序依次加1。也就是說會影響下面的98行(最壞情況下)。這個系統(tǒng)在執(zhí)行速度方面要求很高,所以不打算采用這種方法。
我目前的想法是:
1,把先是數(shù)據(jù)設(shè)置成1萬開始的數(shù)據(jù)。10000,20000...990000
如果在10000和20000之間插入數(shù)據(jù),就是(20000-10000)/2=15000
這樣的話,在同一個位置,最多大約可以插入10多次數(shù)據(jù),在兩個數(shù)字之間的差值等于1的時候,有同樣訂單code的所有數(shù)據(jù)重新進行顯示循序的分配。
2,在數(shù)據(jù)庫中添加一列:下一行的key
比如
1 a鉛筆 2
2 b鉛筆 4
3 鋼筆 0
4 毛筆 3
形成一個list,這樣在中間插入一次數(shù)據(jù),最多只影響上下相關(guān)兩行。這兩個方法可以解決一些問題,但是總覺得應(yīng)該還有更好的方法。請問專家能給提些意見嗎?
訂單code:0001
1 a鉛筆 10支
2 b鉛筆 2支
3 英雄鋼筆 15支
...
一個訂單最多可以用99條這樣的訂貨信息,整個table有幾十萬條數(shù)據(jù)。針對這個表,我可以進行一系列的修改,比如在1號前面追加一行:c鉛筆 4支
這樣,追加行的顯示順序就變成1,下面的數(shù)據(jù)的顯示順序依次加1。也就是說會影響下面的98行(最壞情況下)。這個系統(tǒng)在執(zhí)行速度方面要求很高,所以不打算采用這種方法。
我目前的想法是:
1,把先是數(shù)據(jù)設(shè)置成1萬開始的數(shù)據(jù)。10000,20000...990000
如果在10000和20000之間插入數(shù)據(jù),就是(20000-10000)/2=15000
這樣的話,在同一個位置,最多大約可以插入10多次數(shù)據(jù),在兩個數(shù)字之間的差值等于1的時候,有同樣訂單code的所有數(shù)據(jù)重新進行顯示循序的分配。
2,在數(shù)據(jù)庫中添加一列:下一行的key
比如
1 a鉛筆 2
2 b鉛筆 4
3 鋼筆 0
4 毛筆 3
形成一個list,這樣在中間插入一次數(shù)據(jù),最多只影響上下相關(guān)兩行。這兩個方法可以解決一些問題,但是總覺得應(yīng)該還有更好的方法。請問專家能給提些意見嗎?