remenikomer
21.11.2013 - 13:28
Хочу сделать литералы у категорий, чтобы можно было их сортировать по первой букве.
Алфавит русский.
Проблема в способе реализации.
Придумал два варианта:
1 вариант:
В таблицу к категориям еще добавить одно поле для буквы. А при добавлении категории автоматом брать название и обрезать по первой букве.
Проблемы:
а) необходима обработка GET-параметра из url (тип string). integer проще всего
б) нужно еще как-то переводить русские буквы в транслит
2 вариант:
Сделать отдельный файл с массивом всех букв (id, русская буква, транслит). А в таблице у категории в доп.поле вставлить номер элемента из массива.
Подскажите, пожалуйста, как лучше (подводные камни)? Как делается в разных CMS?
T1grOK
21.11.2013 - 13:35
Цитата (remenikomer @ 21.11.2013 - 09:28) |
А в таблице у категории в доп.поле вставлить номер элемента из массива. |
Быстрей всего конечно будет работать.
Можно не добавлять даже доп поле, а создать короткий индекс на поле слова, но при этом нельзя будет создать композитный индекс. Тобишь придется еще новый индекс навешивать.
P.S. Я реализовывал, путем добавления доп поля типа CHAR(1) и хранил там букву. Создавал индекс буква+слово, при 200 000+ записей в JOIN-е c другой таблице 10 000 000+. Не скажу, что молниеносно работало, но при таких размерах довольно шустро.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api