作者 主題: 請問 csv 資料更新 db 問題  (閱讀 9486 次)

0 會員 與 1 訪客 正在閱讀本文。

dark

  • 俺是博士!
  • *****
  • 文章數: 1568
    • 檢視個人資料
請問 csv 資料更新 db 問題
« 於: 2018-05-26 18:21 »
小弟用 sqlite3 想統計資料 , 但與何種 db 應該無關 ...


若有個 csv

貨物(直的)\帳號(橫的),甲,乙,丙
A,1,-1,2
B,,1,2

10 十分鐘後新 csv

貨物(直的)\帳號(橫的),乙,丙,丁
B,2,1,-2
C,3,2,2
D,2,,3


想更新到 table 中 , 直接邏輯應該是 ..
抓第一行 => 迴圈判斷帳號存在 || 建立欄位
抓第一欄 => 迴圈判斷物品存在 || 新增一列


帳號迴圈 {
  物品迴圈{
    取值 , 加減 , 更新 
}}

-------------------------
如上述簡單例子 , 
第一次迴圈共跑 3x2=6 次 , 第二次 =9
數量大時就乘上去了

一般遇到此類問題 , 程式邏輯是怎麼做的呢 ?




以 3x3 為例 , 小弟在想 , 若是製造兩個 tmp 表格
tmp1
tmp1,tmp1,tmp1,tmp1,
tmp1,乙,丙,丁
tmp1,乙,丙,丁
tmp1,乙,丙,丁

tmp2
tmp2=,tmp2=,tmp2=,tmp2=,
tmp2=,B=,B=,B=,
tmp2=,C=,C=,C=,
tmp2=,D=,D=,D=,

三 table 合併 , eval 取值
物品迴圈{
抓包含物品名稱的變數
}


一般遇到此類欄位非故定的問題
若考慮資料量可能很大時 , 是用什麼方法呢 ?
或已有先賢開發函式可用 ?
謝謝!
 

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17393
    • 檢視個人資料
    • http://www.study-area.org
Re: 請問 csv 資料更新 db 問題
« 回覆 #1 於: 2018-05-27 11:24 »
抱歉,我對 DB 沒有很有研究...
每次讀出來暫存,插入新的值,刪除原有列,再寫回如何?

dark

  • 俺是博士!
  • *****
  • 文章數: 1568
    • 檢視個人資料
Re: 請問 csv 資料更新 db 問題
« 回覆 #2 於: 2018-05-27 17:36 »
小弟此問題 , csv 並非隨時異動 , 沒有怕漏掉某行資料
而在於 csv 欄位並非故定位置 , 欄位數也不一定

若 csv 第二欄永遠是王小二 , 那 table 中代號 w02=第二欄值 , 就不用在判斷一次

如此 , 數量大時 , 判斷就多花時
(ps .. 其實不多 , 只幾百行 x 十幾欄 , 欄位有可能增加 , 欄位行數每次不一定數量出現)


小弟上述製造 tmp 表格方式 , 只說合併 , 沒貼合併結果 ...
若三 table 合併 , 可得

tmp1tmp2=貨物(直的)\帳號(橫的),tmp1tmp2=乙,tmp1tmp2=丙,tmp1tmp2=丁,
tmp1tmp2B=,乙B=2,丙B=1,丁B=-2
tmp1tmp2C=,乙C=3,丙C=2,丁C=2
tmp1tmp2D=,乙D=2,丙D=,丁D=3

若不考慮運算 , 以及置換乙丙丁成代號 , 直接更新欄位值 ... 那麼只需去掉 tmp 字眼
set 乙B=2,丙B=1,丁B=-2 where obj="B"
就簡便許多


小弟對 db 也不熟悉 , 只貪圖他的欄位增減方便而用 , 並沒有深入學習
而這問題應該不算稀少 , 不知有沒有可處理的函式可用 , 因此詢問

畢竟 , 千錘百鍊才能進函式庫 ... 有當然最好


... 最近北韓新聞多 , 前幾天看到舊聞才知道
原來櫻木花道(Dennis Rodma)也進 NBA 名人堂了

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4045
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
Re: 請問 csv 資料更新 db 問題
« 回覆 #3 於: 2018-05-29 15:48 »
sqlite3 目前只用在 APP 內

因為使用在 APP 所以資料的增減以及使用頻率就不會太頻繁  幫不上忙  sorry

而且 sqlite3 也只用過一次  也算是還沒出新手村的超新手了
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

asako

  • 活潑的大學生
  • ***
  • 文章數: 238
    • 檢視個人資料
Re: 請問 csv 資料更新 db 問題
« 回覆 #4 於: 2018-05-31 09:12 »
這不是讀一次,然後hash join,有值更新 無值 push

dark

  • 俺是博士!
  • *****
  • 文章數: 1568
    • 檢視個人資料
Re: 請問 csv 資料更新 db 問題
« 回覆 #5 於: 2018-05-31 12:54 »
這不是讀一次,然後hash join,有值更新 無值 push
感謝asako大大指點

看了一下資料 .. 雜湊連線
對小弟而言還太進階了 ... 需時間學習

謝謝