我有下表:
Table Account{
[...]
email varchar(100),
[...]
}
和相应的正则表达式:
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
如何使用MySQL模型,将正则表达式链接到数据字段“email”,以便可以通过php以及触发器或更好的方式读取正则表达式,约束?
我想使用MySQL工作台直接定义它,因此单独的表对我不起作用。
答案 0 :(得分:2)
在我看来,像这样的输入验证并不是数据库的任务。那些验证规则可能会改变。您甚至有一天可以让用户对它们进行配置。如果规则被隐藏在某个地方的某个触发器中,这就变得非常困难。
此外,您还需要在应用程序级别处理验证错误 - 显示某种消息。
在mySQL中使 PHP 可访问的最佳位置可能是列注释,您可以使用SHOW COLUMNS
和FULL
关键字一起获取。