2009-09-04 89 views
1

我修改我的PHP網絡的代碼有「用戶角色」喜歡這裏WordPress是我的計劃,到目前爲止在mysql數據庫中存儲10個選項的最佳方式是什麼?

0 = registred非電子郵件驗證用戶
1 =臨時用戶和經過驗證的電子郵件
2 =主持人
3 -9 =什麼都沒有
10 = admin

在我的PHP代碼中,我將使用這樣的數組來設置角色號碼。

$user_role['10'] 

我想存儲哪些值的用戶在我的MySQL數據庫的,這會不會來存儲10個不同的角色選擇作爲一個枚舉的最佳方式還是有更好的方法或更快的方式?我讀過enum並不是最快的。

enum('0','1','2','3','4','5','6','7','8','9','10') 

回答

1

我猜INTTINYINT就足以存儲用戶級別(角色)。你也可以考慮把數字乘以10,所以你將有一個空間來增加未來的水平。

+0

我同意這一點。如果你想要的只是一個數字來表示用戶權限,那麼就使用一個整數列。如果使用ENUM,那麼添加新級別的唯一方法是更改​​數據庫模式。另外,ENUM是特定於mysql的非標準的,一般情況下,除非您真的需要特定於供應商的功能,否則您應該避免使用它們。 – longneck 2009-09-04 15:52:35

0

對於權限/用戶級別使用位掩碼。

參見example

+0

小心地擴大這個答案? – ZombieSheep 2009-09-04 14:54:25

+0

看起來有點複雜,你認爲這會更快?另外,如果我使用,我不會在MySQL中使用枚舉? – JasonDavis 2009-09-04 14:56:46

+0

@jasondavis不,你只會在數據庫中存儲權限的十進制表示形式,通過我的答案中的已更改鏈接進行閱讀,它可以很好地解釋它 – 2009-09-04 15:07:36

相關問題