Как добавить регулярные выражения в поля данных MySQL?

0

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

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

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

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

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

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

Теги:
mysql-workbench

1 ответ

2
Лучший ответ

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

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

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

  • 0
    Спасибо за ваше предложение. Есть ли общий шаблон, как сделать что-то подобное в комментариях? Моя первая мысль об этом - сохранить объект JSON в комментарии, чтобы иметь возможность его расширить позже.
  • 0
    @ Томас Я не знаю общей картины; что-то вроде объекта JSON звучит как хорошая идея. Я не могу найти максимальный размер для столбцов здесь - возможно, сначала протестируйте с очень большим значением, чтобы избежать проблем

Ещё вопросы

Сообщество Overcoder
Наверх
Меню