Try   HackMD

OpenDB 11/10

參與人員

  • Solomon, Ashley, Sabrina, Selena, Ryan, Yukino, Ellie, Dequan, Louise

SQLite

  • 重複輸入的問題以解決
  • policestationID 還需要改
    • 目前都是數字1(只能查到一個派出所)
    • 有用到 foreign key,影響到匯資料
  • 這周末會將資料匯入

Q&A

  • Ashley policeStation的 s 有大寫或小寫是故意的嗎

    • Ellie 沒有注意到,之後會統一用大寫
  • Ashley camera 相關錯誤訊息沒有修正

  • Ashley 派出所、行政區、路口的 expression 是可以用的嗎? 廠商的結尾會跟我們設計的一樣?

  • Ashley cameraID 的六碼數字是有規定的嗎

    • Ellie 有建議警局,如果他們有採用,就沒有這樣的規定
  • Ashley ENENT 的 eventID 是不是應該要 primary

    • Ellie 不小心動到的,是 primary 沒錯
  • Ashley policeStation 有兩個 primary key

    • Ellie 會改成 unique
  • Ashley 行政區沒有 not null

  • Ashley SEARCH errorType 要存什麼資料,已知道搜尋時會記錄錯誤到 Log,但正確時,應該不會有錯誤訊息?

    • Ellie 正確的話 errorType 會是 200
    • Ashley 所以成功失敗都要存是嗎
    • Ellie
  • Ashley SEARCH Log 的大小寫要注意

    • Ellie 會再修正,但 SQLite 應該不影響

Flask

  • unit test
    • 回傳 content, message, status
    • 多個錯誤都會回傳 (list)
    • 插入資料
      • 錯誤訊息 content: 欄位缺失
    • 獲取所有辨識紀錄: 沒想到會有什麼錯誤
    • 透過 eventID 獲取辨識紀錄
      • 錯誤訊息 content: 沒有 body
    • 透過車牌查詢軌跡
    • 新增搜尋紀錄
      • 錯誤訊息 content: 欄位缺失
      • 沒有 invalid
    • 獲取搜尋紀錄
    • 透過 searchID 獲取搜尋紀錄
        • 錯誤訊息 content: 404
  • 提醒 SQLite: 錯誤訊息只有 'insert 錯誤',必填資料缺失應該需要有額外的訊息

Q&A

  • Ashley name, reason, caseID 是必填?

    • Ryan 是,必須記錄是誰查詢的
    • Ashley 所以是會 insert 到 TCASE 跟 PERSON 嗎
    • Ellie PERSON 不會動到
    • Solomon TCASE 應該由誰 insert? (Which API?)
    • Ellie 還沒搞清楚
    • Ashley 目前版本還不會 insert TCASE, PEARSON
    • Ryan 但有個 search_history 的 API
    • Ashley 只會動到 SEARCH
    • Ryan 所以需要新增新的 API 嗎 (insert TCASE, PEARSON)
    • Ashley 等 SQLite 決定
  • Ryan 對 response, message 的欄位有疑惑

    • Ryan (insert) 錯誤訊息應該放在 message,content 則是回傳資料,這跟 API 及其他 unit test 格式有衝突
    • Yukino content 是當初測試時沒有刪除的
    • Ashley 另一個原因是 insert 的錯誤訊息不夠詳細。這樣要請 SQLite 多設計,LOG 才看得出錯誤
    • Ellie LOG 存的是 應該是讓 Flask 進資料庫看的 (mapping table)
    • Solomon 兩邊都有道理,但這應該命名為 'ERROR TABLE' 而不是 LOG
    • Ellie 那 Flask 還需要 'ERROR TABLE' 嗎?
    • Ashley 目前是直接寫在程式,用資料庫可查能會影響時間
    • Solomon 程式開始時直接存到記憶體
    • Solomon 所以現在錯誤訊息會直接存在 SEARCH? SEARCH 只有一個欄位,那詳細資訊呢
    • Ellie 會到 LOG 查找
    • Solomon
      25
      種可能,但 errorType 沒這麼多
    • Sabrina 如果查詢資料失敗 SEARCH 裡不就沒有資料嗎
    • Solomon 看起來查詢失敗也會記錄
    • Ellie 多個錯誤應該 Log 多筆資料,不然需要
      25
      種訊息
    • Solomon 這樣如何?
        1. 正確的才會 insert 進 SEARCH table.
        1. 不正確的查詢則 log 在另一個 table 中。
      • ​​​​​​​​​​CREATE TABLE ErrorLog (
        ​​​​    searchID INTEGER,
        ​​​​    searchTime DATETIME,
        ​​​​    sqlCommand TEXT
        ​​​​);
        
  • Sabrina 查詢人在 API 為非必填,但 SEARCH 為 not null,這樣會有衝突

    • Ryan 查詢人應該改成必填
  • Ellie 需要紀錄 insert 的錯誤嗎

    • Solomon 通常對資料庫的所有操作都會記錄(直接紀錄 SQL command 再加時間)
    • Solomon 如果不是收 SQL command, 而是收 JSON, 也可以改成 json TEXT
  • Ashley 必填欄位都需要有錯誤訊息

  • Ellie 覺得 TCASE 的設計有點不良,想要討論

    • Ellie 搜尋的案由會 insert 到哪
    • Ashley 目前沒有任何 API 會 insert
    • Ellie RESTful 有設計 相關 API 嗎
    • Ryan 案由應該是 builtin 的 table
    • Ellie 應該要可以手動輸入
    • Ellie 把 TCASE 刪掉, reason detail 放到 SEARCH,用來填寫(手動輸入)
    • Ryan 應該是加一個備註到 SEARCH,而不是用 reason detail

RESTful

  • 目前還沒進行壓力測試的研究
  • API 跟 SQLite 有出入,所以這周在修改,讓雙方有互相對應

Q&A

  • Ryan camera 已分出去一個 table,EVENT 只需要 cameraID,這樣警局還需要回傳地址嗎

    • Ellie 不需要,只需要 cameraID
    • Ryan 這樣要跟警局說,不然 Flask 程式可能會遇到問題
    • Ashley table 是警局給的所以他們應該會有 cameraID
    • Ellie 目前警局也會傳其他資料
    • Ashley 要要求他們
  • Ellie 案由有 detail 跟選單嗎

    • Ellie 需要新增一個 detail 的欄位
    • Ryan SQLite 新增後再通知 RESTful 修改

其他

  • Solomon PI 要派人整理完整的會議紀錄
    • Sabrina Selena 目前不再,會後會再找他討論

下次進度

  • RESTful 壓力測試
    • Ryan & Sabrina 到實驗室進行壓力測試
  • SQLite 修改 table、建立測試資料
    • Ryan 要注意產生的時間有沒有問題
  • Flask 配合 SQLite 跟 API 做更動