Итак, у меня есть следующие строки в БД:
1 | / Пользователей /
2 | / Пользователей / админ /
3 | / Пользователей / администратора / *
4 | / Пользователей / администратор / микрофон /
5 | / пользователей / администратора / стив / документы /
Входной URL-адрес / users / admin / steve / , и цель состоит в том, чтобы найти совпадение URL-адреса в БД.
Я хочу вернуть # 3 в качестве правильной строки, поскольку подстановочный знак "*" указывает, что вместо звездочки может идти все что угодно. Какой самый эффективный способ сделать это?
Вот мои первоначальные мысли, но я уверен, что они могут быть улучшены:
- Сделайте запрос, чтобы увидеть, есть ли точное совпадение URL
- Если совпадений нет, извлекаются все строки с последним символом "*" в обратном порядке (поэтому более конкретные URL имеют приоритет)
- Для каждой строки, если она (минус «*») совпадает с входным URL, вернуть ее
- Если ничего не найдено, то мы SOL