• Announcements

    • Loader

      Разделы для авторов программ   08/18/16

      Внимание: Софтфорум открывает двери для разработчиков программного обеспечения! Разработчик может создать раздел поддержки его программы. Это позволяет не создавать свой форум поддержки (хостинг, настройка ресурса и т.п.) а получить сразу настроенный ресурс с возможностью авторизации через соцсети. Для создания раздела необходимо обратиться к @Loader
    • Loader

      Внимание! Конкурс!   01/09/17

      Команда «NANO Антивирус» и администрация softboard.ru объявляет о проведении конкурса.
       
    • Loader

      О вложениях и подписях   02/10/17

      Внимание! Все вложения и подписи необходимо загружать непосредственно на софтфорум либо прикреплять ссылками на другие https ресурсы. Связано это с переходом форума на https и усилением защиты и безопасности ресурса. Подробнее.

Bingo

Newbies
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0

About Bingo

  • Birthday 09/05/90

Контакты

  • Skype
    mrbingo23

Информация

  • Пол
    Мужской
  • Город
    СПб
  • Интересы
    web-программирование (преимущественно бэкенд), программирование C#
  • Операционная система
    Windows 8
  1. С базой MySQL работает веб-приложение, поэтому запросы должны быть максимально оптимизированы на скорость выполнения. Есть 3 связанные таблицы: 1) Главная таблица содержит ряд полей, среди которых поле-индекс town_id связывающее ее со 2й таблицей 2) таблица town содержит поля: town_id (bigint) PRIMARY AUTO_INCREMENT country_id (int) INDEX town (varchar) поля country_id и town объединены в ключ UNIQUE 3) таблица country country_id (int) PRIMARY AUTO_INCREMENT country (varchar) UNIQUE При INSERT или UPDATE главной таблицы данные от пользователя поступают в виде town=Город country=Страна соответственно выполняю ряд запросов: INSERT IGNORE INTO country (country) VALUES('Страна'); INSERT IGNORE INTO town (country_id, town) VALUES(LAST_INSERT_ID(), 'Город'); UPDATE main_table SET town_id=LAST_INSERT_ID() WHERE ... Проблема в том что если INSERT IGNORE не вставил новую запись (при совпадении UNIQUE полей) то LAST_INSERT_ID() возвращает некорректное значение. Выполнять 2 лишних запроса SELECT для проверки существования города и страны в базе не есть хорошо в плане производительности. Возможно есть другие варианты реализации?