系統設計話題

2021-09-27 04:03:36 字數 1025 閱讀 8169

1. 刪除的記錄

今天在做系統開發的時候,使用者提了乙個support case,說不小心把系統中的乙個人刪掉了,想要恢復回去,我查了下,這個人並沒有被刪掉,db裡面有乙個status欄位,值為deleted。感覺這樣的設計很好呀,很好的把資料保留了下來,資料很容易恢復。

但我隨後又稍微深入想了下,這樣也有缺點,如果這條資料確實就是刪除以後再也不會用的,這豈不是冗餘資料,會增加db的占用,以及降低搜尋效率等等。所以一定要想好哪些資料要保留歷史資料,儲存多久,哪些模組不需要保留資料等等。如何設計這些也是乙個點,可以多想想。

突然想到讀寫分離模型,不過不懂,之後可以研究下,還有sql index等。

2. 容易漏掉虛擬刪除的情況

今天在查系統乙個問題的時候,發現某條sql預想結果是一條,結果發現結果是兩條,除了id其他內容都相同。然後查了下幾張join的表,發現某乙個表中有兩條記錄,只不過有一條記錄,被標記為deleted。但**中並沒有過濾這樣的情況,導致出錯。我同事說這也是系統設計存在一定的問題,因為在寫sql join的時候,習慣性的很少會考慮到被deleted的情況,尤其是這個程式設計師還是新手。所以覺得這種資料可以在刪除的時候,放到log表中,這樣以後想恢復的時候也可以恢復(記錄的詳細些),而且可以避免這種問題,因為這很難被測試出來,只有在特定情況下才會出現這種問題,而且沒仔細檢查的話,會導致資料錯誤而且不被發現,從而導致業務混亂。

補充下,今天剛剛發現被deleted的資料行也有一定用處,有可能是比較基礎的模組資料,被其他功能所引用,通過id進行關聯,可能過一段時間,這條資料被刪除,其他功能的資料還在。如果物理刪除這條資料,就有可能導致其他功能的資料出現缺失或者其他問題,學到了。

3. 用什麼來記錄log

最近在處理乙個系統的問題時,發現乙個系統使用了excel(2003)用來記錄log,導致在經過一段時間後,excel被寫滿(6w多條記錄),然後不斷發alert email。另外還聽說其他系統有出現log檔案是txt,然後寫了幾十個g,導致support時log很難開啟、瀏覽和定位。目前覺得還是要把相關log記錄在資料庫表中。或者稍微一般的做法,也是每天或者每幾天寫乙個txt作為log。

rosbag錄製固定話題,多話題等

ros框架下可以很方便的進行資料記錄,並且將其轉換為txt檔案進行matlab處理,下面介紹一下rosbag的日常使用方法 1.查詢你所需要的話題 rostopic list 在ros節點開啟的情況下,可以看見ros空間中的話題名,如下圖 2.錄製單個話題名稱 rosbag record o sub...

SAP入門話題

1 sap target blank class link tag sap ides dev qas prd都是什麼含義?2 sap實施方法分幾步?答 1 sap系統的ides dev qas prd分別是其演示練習 開發 質量保證 生產系統。其中 ides internet demonstrati...

排程的話題

在這裡我們主要關注程序的兩個行為特點 io等待和cpu占用。根據這兩個方面將程序分成兩類 io密集和cpu密集。根據系統的環境,我們設計出不同排程演算法,以滿足各個系統的需求特點。一般我們考慮三種系統 批處理,互動式,實時。批處理系統的一般有三個要求 高吞吐量,短周轉時間,高cpu利用率。高吞吐量的...