專案上線後遇到的問題總結
問題一:(使用者非正常流程導致的錯誤)
使用者註冊一半就退出來,導致再次註冊不成功或者用證件號登陸觸發空指標異常。
解決辦法:
一旦輸入證件號時,檢查資料庫的表是否有相應的證件號記錄,有則把相關記錄全部刪掉,從而讓他成功註冊。空指標異常的解決辦法,做非空驗證的判斷。
問題二:(併發插入,流水號不一致)
出現大量的主鍵唯一約束錯誤,後來想到是產生的預報名號不同步,導致有可能大併發量時產生多個相同的流水號,插入就會出現主鍵唯一約束錯誤。
解決辦法:
在資料庫裡寫一個insert的觸發器。自動替換掉要插入的主鍵為 max(key)+1.
問題三:(併發刪除,索引失效)
出現某些表的索引失效,後來發現是插入相同主鍵多次之後導致表失效。
解決辦法:
設定oracle任務,讓資料庫每隔12個小時自動重建所有索引。
問題四:(js程式碼的不細緻)
發現報考志願顯示的專業比原來的少一個。
解決辦法:
發現時jsp頁面的js少迴圈一個=號導致的。。。。
問題五:(資料庫的關鍵表設計有問題)
院校專業表設計的有問題,導致不能唯一確定一條記錄,而產生一個考生可以插入4所學校以上的記錄,而導致列印的時候有可能顯示的不正常。
解決辦法:應該把考生院校專業表設計成以下這樣就能唯一確定記錄,犧牲空間來換取簡便。
Ks_H yx_h zy1_h zy2_h zy3_h zy4_h
同理,把考生院校表可以設計成以下這樣子也能唯一確定記錄:
Ks_H yx1_h yx2_h yx3_h yx4_h
臨時解決辦法:
因為查詢出來的記錄不唯一,所有全部排序各個欄位以保證查詢出來的序列是固定的,再放進hashmap裡確保得到唯一記錄,再去顯示和進行插入操作。
問題六:(頁面和後臺程式碼太不通用)
使用者需求一旦更改或者程式邏輯有錯誤後,導致要修改很多頁面和後臺程式碼,十分不通用,要從業務邏輯上設計的通用點。改一個,就能等同於改全部。用一些設計模式去解決。