Сортировка по 2м параметрам

Тема в разделе "Базы данных", создана пользователем casinolot, 21 апр 2012.

Модераторы: latteo
  1. casinolot

    casinolot

    Регистр.:
    22 окт 2010
    Сообщения:
    547
    Симпатии:
    84
    Ситуация.
    Есть 5 таблиц.
    2 таблицы это сообщения . 1 таблица сообщения с отдельной колонкой дата и колонкой время, это сообщения клиента.
    2ая таблица сообщения также с отдельной колонко дата и время, это сообщения продавца
    Т.е в одной хранятся сообщения клиента, в другой продавца.
    Я делаю выборку с помощью UNION


    1ый. Кто подскажет может их лучше совместить в одну таблицу. если разница в скорости выполнения у mySQL , если запрос к одной таблице ,или 2 к двум, если обьем данных одинаковый
    2ой вопрос важный, как сделть сортировку по времени и дате, т.к. у меня в 2 столбца.
    Делать DATETIME столбец ,не предлогать. :)
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    1. зачем 2 таблицы для практически одной и той же задачи ? проще и правильнее добавить user id
    2. order by date, time
     
  3. casinolot

    casinolot

    Регистр.:
    22 окт 2010
    Сообщения:
    547
    Симпатии:
    84
    1.А как тогда разграничить, где клиент и покупатель
    ведь по одному id может существовать и клиент и покупатель.
    к примеру клиент=1 и покупатель=1 как понять чье сообщение, нужно добавлять столбец ТИП отправителя.
    И что лучше в плане производительности и устойчивости ,для этого случая
     
  4. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    мне организация вашей базы непонятна - вам виднее что там и как :)
    насчет колонки ТИП отправителя - я примерно это и имел в виду [т.е. колонку, по которой можно определять тип собещния]

    иногда принципиальной разницы нет (опять же я не знаю внутренне устройство вашей базы и логику ее связей), но как правило - одна таблица лучше двух.
    тем более если надо извлекать историю сообщений между покупателем и продавцом (если из одной таблицы - то одним запросом из "одного файла"(данные+индексы) )
     
    casinolot нравится это.
  5. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    269
    Симпатии:
    12
    Добавь колонку type.
    И вставляй туда либо admin либо user. Так ты сможешь объединить 2 таблицы
    Что касается даты и времени - создай одну колонку INT(11) и вставляй в формате date("U").
    Потом если тебе надо достать время date("H:i", сюда значение колонки)....
     
  6. Funaki

    Funaki

    Регистр.:
    26 июн 2008
    Сообщения:
    151
    Симпатии:
    16
    я, кажется :) , понял смысл 2-х таблиц: покупатель и продавец имеют один и тот же id, но их сообщения в разных таблицах, потом складываются эти две таблицы, сортируются по дате и получается их упорядоченный диалог
    1. => оставляй как есть (и когда делаешь выборку с помощью UNION лучше используй UNION ALL - это даст хороший плюс в скорости)
    2. order by date, time (конечно только если date, time не текст:)