Задать вопрос
Ответы пользователя по тегу MySQL
  • PDO, MYSQL не срабатывает запрос?

    Попробуй bind так:
    array(1) {
      [":v.group_id2"]=>
      string(1) "3"
    }
    Ответ написан
    Комментировать
  • Правильная ли валидация даты и времени по формату DATETIME перед отправкой в базу MYSQL?

    Да вполне приличный вариант! С безопасностью всё нормально.
    Я бы немного переделал вот так:
    if(false !== $tm = strtotime($date)) {
        $date = date('Y-m-d H:i:s', $tm);
        print 'date ok';
    }

    В таком случае можно принимать дату в разных форматах, в MySQL всё равно пойдет в правильном виде.
    Ответ написан
    Комментировать
  • Как правильно хранить данные заказов в БД?

    Я бы в данном случае вынес название товара из products в отдельную таблицу pruduct_names со следующей структурой:
    - id
    - product_id
    - name
    - datetime
    Таким образом, при обновлении названий товаров мы просто добавляем запись в pruduct_names, и если нужно узнать актуальное название товара:
    SELECT name FROM pruduct_names WHERE product_id=? ORDER BY id DESC LIMIT 1

    Если нужно узнать как назывался товар в момент заказа - делаем запрос:
    SELECT name FROM pruduct_names WHERE product_id=? AND datetime<ORDER_DATE ORDER BY id DESC LIMIT 1

    , где ORDER_DATE - дата заказа

    Аналогично с данными пользователя (если эти данные у вас "одноразовые" - только для одного заказа), которые также можно запихать в отдельную таблицу (orders_data):
    - id
    - order_id
    - type_id //ID из таблицы orders_data_types
    - value
    И связанную таблицу с типами данных для заказа (orders_data_types):
    - id
    - name
    Таким образом в orders_data мы будем хранить только указанную информацию пользователя
    Ответ написан
    Комментировать