2010-03-17 84 views
1

缺乏一位程序員爲我的問題討論正確的方法,我決定問你。無論您使用的MVC框架/環境如何,將MVC示例中的字典表映射到模型的首選方法是什麼?將字典數據庫表映射到MVC模型的方法

我的問題是我有幾個數據庫表,只能作爲字典和作爲外鍵與其他表相關。一個很好的例子是request,它有一個status_id,其中狀態保存在一個單獨的status表中。

現在,後面的表格需要映射到應用程序代碼端的模型。我可以:

  1. 將所有狀態定義爲常量,以便可以在代碼中引用它們,而不用在這裏或那裏戳出那些可怕的「幻數」。但是,對字典(數據庫端)的任何更改都需要修改代碼。

  2. 省略「狀態」表並且只是定義在代碼中使用的有意義的常量。優點:一個地方統治他們。缺點:所有的改變需要潛入代碼,現在的數據庫功能「幻數」實際上不是外鍵

  3. 嘗試狀態自動地轉化爲模型,添加像「const_name」的一個字段「狀態'表和它們在加載模型時即時創建常量。這個對我來說似乎最有意義。

你願意分享一下你通常的做法嗎?

最佳, 鮑爾泰克

回答

0

如果它只是將是一組包含在數據庫,而不是代碼常量,你可以有一個靜態的類加載status常數其他人使用。這樣數據庫和代碼之間就沒有重複,也沒有幻數。

編輯:既然它是一個靜態類,你可以讓它延遲加載常量。在第一次有人要求提供狀態值時,請勿觸碰數據庫。

0

我想說,如果你經常改變它,最好是和桌子一起去。否則靜態類是好的(例如沒有表存儲性的點或狀態列表)。