2010-08-20 47 views
1

我有在關係數據庫中的表需要一個狀態,這將永遠是要麼定義通過枚舉數據的狀態或關係表

沒有提交,正在等待批准,批准行數據的應用程序,拒絕

現在,因爲這些將永遠不會改變我試圖決定實現它們的最佳方式我可以想到一個狀態枚舉的值和一個int分配的地方int放置在錶行的狀態列。

或者鏈接到表的狀態表和用戶選擇其中之一作爲當前狀態。

我不能決定哪個更好的選擇,因爲我目前有一個枚舉到位,這些值用於批准頁面來填充下拉列表等,並設置sql(因爲它當前使用的是bool已批准並提交了批准但由於各種原因和需要改變,這是骯髒的)。

想知道你的想法是什麼,以及我是否應該選擇其中一個。

如果它有什麼區別我正在使用實體框架。

回答

1

如果它永遠不會改變,我會與Enum一起去,因爲這會更高效(沒有加入以獲取狀態)。此外,這是更簡單的解決方案:)。

1

現在,因爲這些東西會不會改變?

你可以指望這種假設是錯誤的,遲早比你想象的。

我會使用查找表。在查找表中添加或更改值要比改變枚舉的定義容易得多。

您可以在查找表中使用自然主鍵,因此您不需要進行連接即可獲取該值。是的,一個字符串比一個整數ID需要更多的空間,但是如果你的目標是避免加入,這將實現這個目標。

1

我使用枚舉並使用[Description("asdf")]屬性來綁定在Enums中不允許的有意義的句子或其他事物。然後使用Enum文本本身作爲下拉列表中的值,將Description作爲可見文本。