2015-12-03 111 views
1

例如,我有一個表名Fruit,每個水果屬於FruitType。所以,我應該存儲在FruitType數據的基礎上再作外鍵Fruit或只是一個參考ID存儲EnumFruitType我應該在數據庫中存儲Type還是應該將其存儲在枚舉中?

更新:
數據庫僅用於一個應用程序。我需要顯示fruit的表格,其中包括它們的fruit type給用戶。我還在水果表視圖中使用type作爲過濾器。

我當前的解決方案:
我將始終有一個EnumType。但是 如果Typeidname有更多的信息,例如description ...我也將它存儲在數據庫中,所以我可以有一個參考視圖來顯示所有Type信息。其他方面只是Enum

+0

如果數據在數據庫中是必需的,並且應該可以在其他應用程序的任何地方使用,那麼數據庫就是要走的路。如果不是,請提供更多信息。 – Patrick

+0

你可以讓這個更具體一點嗎? 「FruitType」和「Enum name FruitType的引用ID」之間的區別是什麼?對我來說,似乎你說同樣的事情兩次 –

+0

@ErwinBolwidt我的意思是id引用數據庫中的'FruitType'記錄或id在Java中引用'FruitType' Enum –

回答

3

您必須使用數據庫來保存FruitType。我將以兩種方式解釋爲'FruitType'實現枚舉。我以爲你使用的是javax.persistance

enum FruitType { 
YELLOW,GREEN,RED; 
} 

class Fruit{ 
private String name; 
@Enumerated(EnumType.ORDINAL) or @Enumerated(EnumType.STRING) 
private FruitType fruitType; 
} 

如果您使用EnumType.STRING,然後保存枚舉的字符串名稱,如(黃色,紅色)。對於EnumType.ORDINAL保存1,2等的順序。

如果您打算處理(添加,更新和刪除)很多FruitTypes,然後使用另一個表來保存數據。

+0

如果你沒有水果類型,那麼不需要FruitType表。 –

+0

所以我應該只根據處理(添加,更新和刪除)的需要選擇其中的一個'Enum'或'Database'? –

+0

是的,如果你經常改變FruitType,那麼就和表一起去。如果沒有,你可以使用枚舉。 –

1

如果您的類型是靜態的,並且您不想在應用程序工作時添加它們,那麼最好使用枚舉。如果真的有很多類型或類型可以添加/更改,最好將它們存儲在單獨的數據庫表中並設置關係。

+0

謝謝,我會採取這個有用的答案。 –

相關問題