2012-05-01 31 views
1
  1. 我可以定義在文件常數和然後將它們包括,或用戶定義的常量從文件

  2. 我可以將它們存儲在DB和種子它們。

根據您的經驗,哪一個更好/更快/更少的資源爲成本說..幾十,幾百,幾千界定?

+0

取決於你多久改變這些常數。如果你只打算在這裏和那裏改變一些,那麼做任何數據庫調用都沒有用,只需將它們放在一個文件中幷包含它。 –

回答

3

這是一個永遠存在的問題,因人而異,是一種平衡的行爲。對我而言,這完全取決於數據集被假設爲多大和多大。在我的應用程序中,我有大約10個代碼點,我將引用常量,而不是經歷從數據庫中提取數據的所有開銷。

使用常量的另一個好處,是可以參考他們在整個代碼庫,這將有助於減少缺陷和改進的語義,例如:

class Ad 
{ 
    const ID_AD_TYPE_BANNER = 1; 
    const ID_AD_TYPE_SKYSCRAPER = 2; 
} 

// Somewhere in app 
if (array_key_exists(Ad::ID_AD_TYPE_BANNER, $array)) { 

但是也有一些缺點嗯?我毫不猶豫地稱他們爲劣勢,因爲他們不難解決。首先,如果您的常量是整數,並且您的應用程序曾經將這些常量輸入到表中,那麼您將無法加入「查找」表並查看查詢值作爲查詢結果的一部分。相反,你只需要知道在查詢中什麼是1。其次,一定要將常量放置在常識位置,並儘可能地嘗試命名空間,這樣,如果最終忘記了它們的存在,就可以輕鬆找到值。如果你有一個聰明的IDE,它會爲你做到這一點。也知道如果一個不斷變化,你將不得不做一個代碼推動與直接操縱數據庫數據。

對於常量,如果列表相對較小(< 25),並且不會有太大變化,但是如果數據不符合這些約束,我會建議將它們彈出到數據庫中。

0

我會說文件會更快,但可能會更大,因爲數據庫會更慢,連接並獲取結果並返回。我個人會使用一個文件。