使用GUID主鍵在可能的事件類型存儲在數據庫的查找表中的審覈系統上工作。由於各種原因,它們必須保存在數據庫中,而不是存儲在枚舉或類似的東西中。使用查找表時保持代碼可讀性 - 性能與可維護性
目前,中等的任務,我的代碼是充滿了這個樣子位:
if (currentLp.PercentageShare != lp.PercentageShare)
{
//percentage change audit
DiaryEvent de = RepositoryHelper.AuditEvent(lp.CilCase_Id, new Guid("56900C62-3164-4111-BAEC-4F102FEF5813"));
_cilUpdateContext.DiaryEvents.Add(de);
}
的問題,這是顯而易見的 - 我知道,那個特定的Guid映射到一種被稱爲「所佔的百分比更改「,但其他人進入代碼不會,除了我的一次性評論。
我可以想出解決這個問題的兩個辦法。
首先是從代碼中使用描述字段查詢數據庫以獲取Guid,但這是一個很大的性能問題,因爲這將會發生很多。
第二個是在類中設置一個Guid/String Dictionary,它映射到查找表中的值,並使用它來獲取Guids。但這是一個很大的可維護性問題,因爲它們的類型列表偶爾會發生變化,系統中的任何人都需要記住確保兩者保持同步。
哪個更小?還是有另一種解決方案?
在整個應用程序中有一個簡單的'static const'字段有什麼問題?無論如何,GUID是不變的,不是嗎? –
爲什麼GUID鍵?使用int或long鍵,您可以使用知名事件類型的枚舉,例如「PercentageShareChanged」。 – Joe
問題不在於GUID鍵,而是數據必須位於數據庫中。即使我將它們更改爲整數鍵(我可以),該列表仍需要維護在兩個地方。 –