假設我有一個名爲Medium
的類,它可以表示不同類型的媒體。例如:在數據庫中存儲類常量(用作位掩碼)?
- 上傳視頻
- 嵌入式視頻
- 上傳圖像
- 嵌入圖像
我表示這些類型的具有contants,像這樣:
class MediumAbstract
{
const UPLOAD = 0x0001;
const EMBED = 0x0010;
const VIDEO = 0x0100;
const IMAGE = 0x1000;
const VIDEO_UPLOAD = 0x0101; // for convenience
const VIDEO_EMBED = 0x0110; // for convenience
const IMAGE_UPLOAD = 0x1001; // for convenience
const IMAGE_EMBED = 0x1010; // for convenience
const ALL = 0x1111; // for convenience
}
因此,我很容易做一個組合的檢索他們通道上(抽象)庫,喜歡的東西:
{
public function findAllByType($type)
{
...
}
}
$media = $repo->findAllByType(MediumAbstract::VIDEO | MediumAbstract::IMAGE_UPLOAD);
// or
$media = $repo->findAllByType(MediumAbstract::ALL);
// etc..
你怎麼感覺像數據庫中的具體存儲庫使用這些常量?可以嗎?或者我應該用數據庫中的有意義的數據替換它們。
Table medium:
| id | type | location | etc..
-------------------------------------------------
| 1 | use constants here? | /some/path | etc..
(當然,我會只使用有意義的常數:VIDEO_UPLOAD,VIDEO_EMBED,IMAGE_UPLOAD和IMAGE_EMBED)
不是一個真正的社區wiki問題國際海事組織。 – 2010-04-04 21:58:21
+1 Pekka。社區維基讓我無法回答。我喜歡獲得聲譽積分來回答問題。 – 2010-04-04 22:03:31
我有點問一個主觀(你覺得...)的問題。但我會對它進行修改......並瞭解社區對此的看法。 :) – 2010-04-04 22:06:26