2015-10-12 83 views
1

比方說,我有一個可以連接到客戶的以下標誌:二進制爲標誌

1 Hot 
2 Urgent 
4 Sensitive 
8 Confidential 

在我的表我會積極的客戶存儲爲6

一個int

我想這樣做會節省我一個參考表,並加快查詢速度。

如何讓PHP解釋6,例如點亮客戶和活動圖標?

+4

有人可以真正活躍*沒有*作爲客戶?潛在客戶可以取消?潛在客戶可以是客戶?我認爲你需要更加認真地考慮旗幟和他們所代表的國家。 –

+0

http://php.net/manual/en/language.operators.bitwise.php –

+0

這些只是一些簡單的例子。我已經爲你更名了。現在非獨家,但我明白你的意思。 – imperium2335

回答

1

按位運算符將這樣的伎倆:

$flag = 6; // value from the database 
$customer = 2; // constant value 
$active = 4; // constant value 

if ($flag & $customer) 
{ 
    print 'I am a customer.'; 
} 

if($flag & $active) 
{ 
    print 'I am active.'; 
} 

我雖與@GordonLinoff同意。真的考慮這是否是你想要的,因爲稍後改變並不容易,並且它可能允許意外情況。

+0

所以問題出現時,一個人不能沒有另一個? – imperium2335

+0

@ imperium2335是的,這是一個例子。還要考慮刪除一個分類的可能性;或者,添加一個新的記錄,並且應該是默認的所有現有記錄。另外,在你最初的例子中,潛在客戶和客戶真的不同只有一面旗幟?在這種情況下,表格不可能被標準化。我並不是說永遠不要使用按位標誌,但要仔細考慮是否合適。 – woz

+0

不,這是一個不好的例子,實際上有一個狀態欄,前景或客戶。這些定義存儲在一個單獨的表中。 – imperium2335