我需要幫助來確定這個問題的數據結構。數據是我們的類型和子類型,大多數子類型爲空,但對於很少的類型,子類型有一個值。我需要讀取另一個表中可用的源表中的數據。我可以在應用程序上使用哪種數據結構來存儲所有這些信息?該應用程序沒有關於Type_id的信息。它僅用於數據庫。所以我們應該在數據結構中保存Type,SubType,Source Table。 我應該爲這個特定問題使用哪種數據結構?
0
A
回答
2
爲什麼你不使用兩個類?
類型將是具有子類型實例字段(可以爲null)的主類。
class Type
{
public SubTypeClass SubType {get; set;}
public string Id {get;set;}
}
我不想因爲我 試圖使它configuratble使用類。即 我們應該能夠在類型表中添加一個新列 和應用 應該皮卡新列
我會建議不要這一點,除非確實需要。通常,如果數據庫表的更改出於一個非常好的理由,應該重新考慮應用程序設計......如果您有可能瘋狂增長列的表,那麼您的數據庫設計可能不是很好,肯定沒有正式化(我假定標準SQL數據庫)。
考慮到,sub_type不是一個很好的定義,我假設你將它用作分類的一個例子......不要嘗試製作銀色的子彈數據結構,因爲你會發現它帶來了更多的問題,它解決了。如果一個給定的關聯數據表發生變化,改變一個類的好設計對於所有類都沒有比直接SQL查詢更好的類來說並不是什麼大事。
1
編輯:
通過查詢獲得更多的DB類型/子/來源的元組:
SELECT table1.Type, table1.SubType, table2.Source from table1 JOIN table2 on table1.type_id = table2.type_id;
編輯完
不知道如何將數據要使用,您可以執行以下操作:
class MyData{
HashMap<String, String> columnData;
}
當插入columnData(代表一個單一類型/子/來源元組),它會像做:
columnData.put("Type", type);
columnData.put("SubType", subtype);
columnData.put("Source", source);
這樣,你不需要改變類結構時添加新列到DB。
,然後在主應用程序,你可以使用:
List<MyData> list;
當然,這個答案可能取決於這些數據將如何使用改變。
相關問題
- 1. 我應該在這裏使用哪種數據結構?
- 2. 根據我的需要應該使用哪種數據結構?
- 3. 我應該使用哪種數據結構
- 4. 我應該使用哪種RDBMS或數據結構?
- 5. 我應該使用哪種.NET數據結構?
- 6. 我應該在Java中使用哪種數據結構?
- 7. 我應該使用哪種數據結構?
- 8. 我應該使用哪種數據結構進行位填充?
- 9. 我應該使用哪種命名約定用於結構?
- 10. 我應該使用哪種數據結構來處理多值數據?
- 11. 我應該選擇哪種XML結構?
- 12. 我應該如何爲這個問題設計數據庫結構?
- 13. 我應該爲這個定價表使用什麼數據結構
- 14. 我應該選擇哪種數據結構?
- 15. 無法確定數據庫結構。我應該去哪一個?
- 16. 數據結構,我應該選擇哪一個,爲什麼
- 17. 我應該在Redis中使用哪種數據結構用於通知系統?
- 18. 哪個數據庫使用這種文件和目錄結構?
- 19. 我應該爲我的列使用哪種數據類型? [MySQL]
- 20. 我應該在Java多線程中使用哪種數據結構?
- 21. 我應該在java中使用哪種數據結構來存儲重複值?
- 22. 我應該使用哪種數據結構來存儲散列值?
- 23. C#數據結構:我應該使用哪種類型的集合?
- 24. 我應該使用哪種數據結構進行地理編碼?
- 25. 我應該使用哪種體系結構?
- 26. 特定問題的數據結構?
- 27. MySql中使用哪種數據結構?
- 28. 要使用哪種數據結構
- 29. 要使用哪種數據結構?
- 30. 要使用哪種python數據結構
你在問數據結構還是類結構? – 2011-01-12 15:43:20
我不想使用類,因爲我試圖使其可配置。即我們應該能夠在類型表中添加一個新列,並且應用程序應該拾取新列。我必須將所有這些值存儲在應用程序緩存中。所以無論何時應用程序請求源表的類型和子類型I的特定組合都應該能夠從數據結構中檢索它。我想過使用2個字典。我爲類型和其他類型或子類型和值將給源表。但字典不允許在此處輸入重複值type_id 3 ad 4 type is C – 2011-01-12 15:52:43