Вопрос по БД

Тема в разделе "OpenCart", создана пользователем Kozlevich, 20 май 2014.

  1. Kozlevich

    Kozlevich

    Регистрация:
    28 фев 2013
    Сообщения:
    51
    Симпатии:
    3
    Прувет. У меня пара вопросов.
    Не силен в мускуле поэтому вопрос может не совсем корректно поставлен:

    Вопрос 1й: Сравнивая между собой БД "родного" Opencart и OcStore, во многих таблицах
    в завершающей строке вижу разницу:
    например таблица `oc_setting`
    БД Opencart: ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4923 ;
    БД OcStore: ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

    Вопрос: интересно, почему в OcStore решили игнорировать генератор уникальных идентификаторов?

    И вопрос второй.
    БД имеет (на мой ламерский взгляд) вид:
    Заголовок типа: INSERT INTO `oc_setting` (`setting_id`, `store_id`, `group`, `key`, `value`, `serialized`) VALUES
    И строчки значений типа этой: (113, 0, 'config', 'config_telephone', '123456789', 0),

    Вопрос: при обращение к данным какую роль играет значение "setting_id"?
    И можно ли присваивать ей значение "от вольного"? Ну то-есть, обращение идет как к "`store_id` из таблицы `oc_setting` равно нулю" ? Или как "store_id с идентификатором строки 113 из таблицы `store_id`равно нулю"?
     
    Последнее редактирование: 20 май 2014
  2. Pelmen

    Pelmen Guest

    setting_id - уникальный
     
  3. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    130
    Симпатии:
    35
    Эта часть устанавливает начальное значение счетчика автоинкремента для конкретной таблицы. Ничего страшного в этом нет, главное чтобы setting_id был уникальным.
     
  4. Kozlevich

    Kozlevich

    Регистрация:
    28 фев 2013
    Сообщения:
    51
    Симпатии:
    3
    Спасибо за ответ, denya.
    Но как мне показалось, "4923" было последним значением из нумерации строк в таблице.
     
  5. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    130
    Симпатии:
    35
    Все правильно. MySQL хранит последний сгенерированный номер, чтобы потом продолжать отсчет автоинкремента от него. Если никакие ошибки не возникают при работе магазина, то можете вообще забыть про него и не обращать внимание. При вставке данных "вручную" просто не вставляйте поле идентификатора и БД самостоятельно сгенерирует для него следующий уникальный номер.
     
  6. Kozlevich

    Kozlevich

    Регистрация:
    28 фев 2013
    Сообщения:
    51
    Симпатии:
    3
    Да, теперь наконец-то у меня полная ясность с этим инкриментом. Пойду учиться запросы к БД сочинять- нулить дефолтные предустановки чтобы.
    Спасибо, denya!