Как создать псевдоним SEF для строкового значения БД

У меня есть таблица БД с именем games, которая, скажем так, для упрощения содержит столбцы "id" и "gametitle" и содержит около 7000 уже заполненных строк.

То, что я хотел бы сделать, это иметь кусок SQL, который генерировал бы псевдоним SEF для названия игры, который я могу использовать в URL (у меня успешно работает перезапись URL на сайте).

Новое поле будет введено в новый столбец с именем "gamealias".

Так, например, если бы у меня был заголовок игры "Halo: Combat Evolved", он бы отбросил любых специальных персонажей и произвел бы что-то похожее на "halo-battle-evolved". Все псевдонимы в таблице должны быть уникальными, так как они будут использоваться в URL игры... например, http://thegamesdb.net/game/halo-combat-evolved/

Кроме того, было бы неплохо, если бы после вставки новой строки псевдоним мог быть сгенерирован автоматически из SQL без необходимости обрабатывать его в PHP (возможно, используя значение по умолчанию для полей sql), хотя я не возражаю против этого в PHP, если это невозможно волшебным образом в SQL.

1 ответ

Я думаю, что это может быть сделано в MySQL с использованием триггера и UDF с заменой регулярных выражений, но это, вероятно, будет более простой маршрут, только с использованием PHP. Вы можете легко гарантировать уникальность gamealias, если интегрируете первичный ключ заголовка со строкой. Например, рассмотрим что-нибудь, что выдаст "halo-battle-evolved-321".

Другие вопросы по тегам