我正在構建數據庫幫助程序和提供程序,並堅持以下方面的最佳實踐。假設我有要發送的消息,它可以具有「待處理」,「發送」,「發送」,「發送」,「失敗」的狀態,並且數據庫將跟蹤每條消息及其當前狀態。管理查找表/可重複數據/正常化數據的正確方法
我的初始佈局應該是有一個「message_status_type」表,並把所有不同的狀態放到這個表中。然後爲「消息」表創建一個外鍵來跟蹤消息的當前狀態,並基本規範化數據庫。
現在用android是這樣做的最好方法嗎?還是有沒有理由不正常化只是將message_status_type(s)作爲整數存儲在消息表中,並在提供者或合約中查找將ID轉換爲文本值?
或者是最好的做法是保留一個單獨的表,並讓提供者合併數據以抽象出具有「message_status_type」表的事實?
我已經使用從消息表中分離出來的message_type表向前移動了。但是永遠不會有高吞吐量的情況。我希望在任何時候平均使用大約2次。也許極端情況會是20或更多。有一個線程管理消息傳遞,它將簡單地更新消息表,以便UI可以顯示傳出消息的狀態。以及提供關於傳輸的消息的傳統信息。如果l18n是一個問題,那麼會存儲一個resource_id?或字符串值來匹配資源查找? – Charon
如果I18n是一個問題,那麼您可能將所有用戶可見的字符串存儲在每個語言環境的外部文件中。您只需將標識符存儲在數據庫中,除了開發人員的理解之外,沒有任何用於將字符串存儲在數據庫中的任何用法 –