2012-06-05 53 views
0

讓我們想象下面的場景:以正確的方式分離數據

我有一個表「類型」和一個表「事情」。每個「東西」都有一個通過「Things.TypeId」列定義的類型,在「Types.Id」列中有一個外鍵。

現在我想通過我的C#代碼訪問這些類型,它將類型加載到列表中,以便我可以在我的應用程序中使用它。

現在我們來想一下一種方法,它試圖加載所有類型爲「1」的「事物」給我的應用程序。

SELECT * FROM Things WHERE TypeId = {0}"

在哪裏我現在得到的類型 「一」 的TYPEID?通常情況下,枚舉將適用於此,但由於類型存儲在我的數據庫中並在運行時檢索,因此我們不能使用枚舉。

我該如何處理這個問題?

回答

2

您可以用加入

select things.* 
from things 
join type on thing.typeID = type.typeID 
where type.name = 'one' 

還是做程序啓動時,您可以鍵入裝入與TYPEID該鍵的字典和命名值。您也可以將DictionaryList綁定到Combobox,在其中顯示值但使用該鍵。

+0

感謝您的回答。但是這意味着要保存冗餘數據(因爲'一個'將在數據庫中,並且在代碼中是常量) – SeToY

+0

問題是「one」。然後看我的答案的第二部分。在程序加載時,將密鑰和值檢索到集合中。 .NET中的很多集合。字典只是一個。 – Paparazzi