我們通過API將頭像狀態更新發送到外部服務。在SQL Server和C中代表查找表#
阿凡達:
ID
Name
Age
Nationality
Status
有4種狀態,我們可以派:
(A) Alive
(D) Dead
(C) Injured
(U) Unknown
括號中的人物的狀態如何存儲在外部系統 - 我們必須給他們ID &該格式的狀態。
我們需要將它們存儲在SQL Server中,因此我們需要在頭像表中具有狀態表的主鍵。
我們還需要在C#代碼中表示狀態。狀態不太可能會改變 - 所以一個枚舉或字典會(我認爲)是一種合適的方式來表示狀態,以便在C#代碼中清除它們。
我們可以在狀態表中添加一個int主鍵,然後使用單個字母表示(發送到外部系統)和全名。
或者我們可以將主鍵設置爲char(1)作爲字母 - 並將其存儲在「阿凡達」表的「狀態」列中。
前者可能是枚舉 - 後者是C#中的字典。
這兩種方法是否有任何標準化問題。在面向對象的術語中,兩種方法都存在問題。
這兩種情況下的最佳做法是什麼?
謝謝所以 - 我的問題的肉 - 將狀態表的主鍵作爲int或char(1)存儲?如果它是一個int,則需要一些額外的查找來將其更改爲發送到外部系統所需的char(1) - 雖然int PK通常更好。 – niico
@niico - 我的建議是TinyInt,與CHAR(1)在SQL中的存儲大小相同,但在PK和索引(羣集與否)上更容易。 –
因此,perf比可讀性更重要?在執行化身和狀態表之間的連接時,這個性能是否相關? – niico