基於對this question about dynamically accessing tables的回答,我決定退回幾步,並在更大的圖片上獲得一些建議。SQL Server模板驅動的數據輸入問題
我正在重溫使用ASP.NET重寫Web的Windows窗體應用程序的數據庫設計。另外,我將數據庫移植到了Sql Server中,因此它可以處理更多流量,因爲Access數據庫已經負擔過重。因此,看到SQL Server可以做什麼,我一直在重新審視我的數據庫設計決策,以及它們對我的用戶界面設計的影響。
目前,Windows界面顯示近期代碼列表:
02691 AFF1
32391 Lot# 23
等。
對於每個代碼中有一個製作表中的記錄是始於:
ProductionCode varchar(80),
Template varchar(50),
...
模板表示一個數表中的一個,也是一個外鍵模板字段定義。所有這些信息都用於從代碼開始動態構建DataGrid。
有ScoreField表,它表示所有模板中的所有字段,除了ProductionCode(它們都是外鍵)。
ScoreField
Template varchar(50)
Field varchar(50)
Formatting varchar(50) // This is a .NET style formatting string, say 0.00 or ##
...
然後有模板表本身,它們包含一個ProductionCode,每個測試的時間以及測試收集的任何數據。
所以創建我的DataGrid,在飛行中,我通過
SELECT * FROM ProductionRun WHERE ProductionCode = @Code
在現實中開始,我只是得到了一個結果,或者如果沒有獲得結果中止進程。
如果代碼是由用戶選擇的代碼串(使用下拉,不是vunerable注射)
然後我做的:
SELECT * FROM ScoreField WHERE Template = @Template
哪裏@Template其實,模板ProductionRun的一條記錄的字段值返回。
然後我做的:
SELECT * FROM @Template WHERE ProductionCode = @Code
但實際上,我剛拼接模板的名字,我在第一部分得到。
然後我使用ScoreField的結果爲每個匹配結果添加列並設置格式化et all。
但是,當然,由於在運行時全部這樣做,我不會使用數據綁定,而必須以編程方式填寫所有數據。
因此,隨着這個數據庫重新審視,我正在尋找另一種更好的方法。我在不同的表格中獲得了數據,並且我想將格式應用於數據,並且能夠在一個界面中完成所有操作,而不是強迫用戶猜測其數據所在的模板。我希望能夠添加模板而不會讓系統過於緊張。很顯然,這不是一個簡單的編程問題,而是更多的最佳實踐問題,但我一直在尋找一些靈感和/或示例,讓我開始走上不同的道路。
它的所有質量控制測量,如Ph和Brix等。所以一種產品可能有Ph,Brix,CoolingTemp,Pits等,另一種產品會有不同的測量結果,儘管有些可能相同。 – 2008-12-08 19:39:19