2010-09-16 100 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

相关问题