2010-09-16 54 views
0

我有如下表:如何將正則表達式添加到MySQL數據字段?

Table Account{ 
    [...] 
    email varchar(100), 
    [...] 
} 

和一個對應的正則表達式:

/^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$/i 

如何使用MySQL的模型,正則表達式鏈接到數據字段「電子郵件」 ,所以正則表達式可以通過php讀取,也可以通過觸發器讀取,甚至更好,在一種約束?

我想直接使用MySQL工作臺來定義這個,所以一個單獨的表格不適合我。

回答

2

在我看來,像這樣的輸入驗證並不是真正的數據庫任務。那些驗證規則可能會改變。你甚至可以讓用戶有一天可以配置它們。如果規則被隱藏在某個觸發器的某處,這變得非常困難。

此外,您還需要處理應用程序級別的驗證錯誤 - 顯示某種消息。

最好的地方,讓他們接觸到PHP內部MySQL可能是列評論,你可以與FULL關鍵字結合使用SHOW COLUMNS取。

+0

謝謝您的建議。有沒有一個共同的模式如何在評論中這樣做?我首先想到的是在評論中存儲一個JSON對象,以便稍後擴展它。 – Thomas 2010-09-16 22:53:51

+0

@Thomas我不知道有一個共同的模式;像一個JSON對象聽起來像一個好主意。我找不到列的最大尺寸[here](http://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html) - 可能首先測試一個非常大的值避免問題 – 2010-09-17 07:50:04

+0

非常感謝! – Thomas 2010-09-17 12:20:10

相關問題