2009-07-22 34 views
0

對於顯示許多數據庫字段的GUI,最好有一個字段:標籤映射,以便GUI標籤不是硬編碼的,而是動態設置的。例如如何將GUI標籤映射到數據庫字段?

  • 高度: 「身高(cm)」
  • 年齡: 「年齡在多年的」
  • bloodAlcPct: 「血液中酒精%」
  • monthsIncarcerated: 「在監獄月」

你在哪裏存儲這些字符串,以及它們如何映射到數據庫字段?您可以安全地假設用戶請求對這些標籤進行頻繁更改。

回答

1

您可以使用包含有關表格字段信息的元表。一旦你擁有了它,你總能找到更多的用途。

+1

這不涉及相當數量的額外查詢嗎? – Glenn 2009-07-22 21:29:03

+0

根據使用情況,您可以在啓動時使用單個查詢將標籤加載到類/結構中,然後完成。 通常你的標籤不會經常改變,對吧? – Mostlyharmless 2009-07-22 21:31:19

1

我不會存儲這些在您的數據庫,而是讓他們在表示,因爲它是在每一個良好的ORM進行數據庫表的OO模型映射(看Django的,Kohana的-ORM,ActiveRecord的等)

編輯:

那麼..這取決於你指的是硬編碼。硬編碼通常是指當您在表單或輸出中使用該字段時,代碼中包含該代碼。在ORM類中,它僅被定義一次,並從此重新使用。如果你想使用不同的語言,你也可以使用_get方法。

你必須在某個地方定義標籤。我發現如果您將數據庫放入數據庫,會產生太多開銷,因爲您必須從數據庫中檢索信息。取決於您使用的GUI類型可能很多次。

最後,您有兩件事要平衡,代碼的性能和可讀性/可擴展性。將它封裝到一個類中使得它從兩個角度都是乾淨的,除非用戶更改標籤的情況下,那麼它是動態數據並且應該在數據庫中。

無論如何,往往這是一個特定的情況和個人品味的問題。因此,這裏沒有正確或錯誤的解決方案。

+0

您是否將標籤硬編碼到類文件中? – Glenn 2009-07-22 21:25:01

+0

所以..代表數據庫表的OO模型...如果你將標籤存儲在那裏,它仍然是硬編碼......對吧? (以前從未使用過這些,所以我不確定,我需要問) – Mostlyharmless 2009-07-22 21:25:23

+0

正如我在編輯中所說的,如果你在課堂上定義了一次,並遵守DRY(不要重複自己)它並不是真正的硬編碼,除非有一些原因需要定期更改(即使在這種情況下,也可以使用_get進行多語言編程)。 – txwikinger 2009-07-22 22:01:59

相關問題