Как лучше всего сделать быстрый поиск и короткие ссылки?

Тема в разделе "Как сделать...", создана пользователем danneo, 6 сен 2012.

  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    1 вопрос:
    Есть несколько модулей, в разных таблицах базы. Необходимо сделать форму поиска, где вводится ID и модуль.
    Какие варианты я вижу:
    1. Добавить в каждый модуль код, который бы добавлял в общую таблицу запись с уникальным ID: название модуля и ID объявления. А поиск происходил по этой таблице.
    2. В форме поиска сделать выбор модуля (выпадающий список), поле для ID. При поиске эти данные отдаются обычному скрипту модуля и выводится статья.
    3. Ваш вариант...
    Помогите, как лучше всего сделать это с точки зрения правильности и оптимальности для кода и пользователя?

    2 вопрос:
    Как можно сделать короткие и легко запоминающиеся ссылки (цифрами по ID) на все статьи всех модулей?
     
  2. cruide

    cruide Писатель

    Регистр.:
    25 июл 2012
    Сообщения:
    8
    Симпатии:
    22
    Ничего не понял... можно конкретики..

    Что в данном случае Вы называете "модулем"?

    добавлял в общую таблицу запись с уникальным ID...
    А разве у вас в таблицах нет у записи поля ID или что-то похожего?

    "Вапще" ничего не понял... кому отдаются? Есть ещё и "не обычные" скрипты? и опять модуля?


    В принципе тут не сложно... просто нужно знать как вы будете получать эти ссылки... как работают скрипы...
    Можно просто указать в .htaccess что-то вроде "RewriteRule ^post-(.*)$ /showpost.php?post=$1"
    потом получать его в виде $_GET['post']
     
  3. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    Модули разные, это значит разные, например, статьи, новости, файлы, фото и т.п.
    В быстром поиске выбор названия модуля. Т.е. пользователь выбирает из выпадающего списка, например, искать в статьях и вводит ID не статьи, а общий ID (уникальный ID среди всех модулей).
     
  4. cruide

    cruide Писатель

    Регистр.:
    25 июл 2012
    Сообщения:
    8
    Симпатии:
    22
    Вот это мне не понятно...
    тоесть у Вас модули со своими таблицами?
    Или Вы храните названия модулей в разных таблицах? или что?

    Если есть таблица, где у Вас хранятся названия "проинсталенных" модулей, то никто не мешает туда воткнуть поле id например...

    Код:
    DROP TABLE IF EXISTS `tab_modules`;
    CREATE TABLE IF NOT EXISTS `tab_modules` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `name` varchar(50) NOT NULL,
      `installed` tinyint(4) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `name` (`name`),
      KEY `installed` (`installed`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    Далее просто делать выборку и раскладывать в select
    Получать значение (id) и смотреть что это...