Я бы хотел задать теоретический вопрос о маршрутизации и использовании базы данных для поиска конкретных маршрутов.
Допустим, у меня есть система продуктов.Я знаю все о to_param
и как оно работает ( благодаря Райану Бейтсу около миллиарда лет назад) и даже о том, что я могу вывести идентификатор из параметра, если я статически установлю его на самой модели.
Проблема в том, что я хочу извлечь из него идентификатор для поисковой оптимизации и других целей.Я не могу поставить его на саму модель Product
, потому что слаг имеет тенденцию меняться с изменением продукта и т. Д. Поэтому мне нужно что-то держать слизни, например, модель Route
.У меня есть таблица со столбцом product_id и столбцом слаг.Слизень проиндексирован, поэтому Rails может быстро найти его.
У меня есть несколько проблем, но:
- Это даже лучший способ сделать это?
- Есть ли способ кэширования слагов в памяти, чтобы каждый раз не возвращаться к базе данных?
- Будет ли моя база данных иметь огромный успех, если она просто ищет простуюслизняк в таблице который индексируется?Полагаю, мне нужно будет самому провести тестирование производительности, но мне любопытно, измерял ли это кто-нибудь раньше.
Спасибо!