Как добавить регулярные выражения в поля данных MySQL? - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть следующая таблица:

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

и соответствующее регулярное выражение:

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

Как использовать модель MySQL, чтобы связать регулярное выражение с данными- поле "email", чтобы регулярное выражение было доступно для чтения через php, а также через триггер или, что еще лучше, в виде ограничения?

Я хочу определить это напрямую, используя MySQL, поэтому отдельная таблица не будет работать для меня.

1 Ответ

2 голосов
/ 17 сентября 2010

По моему мнению, проверка правильности ввода на самом деле не является задачей базы данных. Эти правила проверки могут измениться. Вы даже можете сделать их настраиваемыми пользователем когда-нибудь. Это становится очень сложно, если правила где-то спрятаны в каком-то триггере.

Кроме того, вам все равно придется обрабатывать ошибку проверки на уровне приложения - показывая какое-то сообщение.

Лучшим местом, чтобы сделать их доступными для PHP внутри mySQL, может быть комментарий к столбцу, который можно получить, используя SHOW COLUMNS вместе с ключевым словом FULL.

...