За последние 24 часа нас посетили 26684 программиста и 1549 роботов. Сейчас ищут 785 программистов ...

Алгоритм товар в городе

Тема в разделе "PHP для новичков", создана пользователем AlexProg, 21 ноя 2018.

  1. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Всем добра!

    Парни, натолкните на мысль... Как хранить в базе товары, которые есть не во всех городах?

    На данный момент есть таблица товаров и таблица с городами. Все товары могут быть в одном городе, но может быть и один товар в городе.

    Спасибо!
     
  2. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Таблица Города (TableCity):
    ID - id города (newid())
    City - название города

    Таблица Товары (TableCityProduct):
    ID - id товара (newid())
    Product - название товара

    Таблица Склад (TableCityStock):
    ID - id уникальный (newid())
    Product = id товара из таблицы TableCityProduct (TableCity.Product)
    City = id города из таблицы TableCity(TableCity.City)

    И все, у тебя никаких проблем. Тащишь данные из TableCityStock и смотришь какой продукт есть в каком городе.

    Ну и количество товара еще должно быть по идее в TableCityStock
     
    #2 Artur_hopf, 21 ноя 2018
    Последнее редактирование: 21 ноя 2018
    AlexProg нравится это.
  3. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Спасибо! Попробую.
     
  4. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    @webog Только id вытягивай, я там опечатался : TableCity.ID, TableCityProduct.ID
     
    AlexProg нравится это.
  5. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    @Artur_hopf получилось!

    Эта таблица будет огромной? Допустим 100500 ед. товаров и почти все во всех городах.
    Допустим городов 50 шт.
    Итого: (берем по максимуму) 5 025 000 записей

    Это нормально? :)
     
  6. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Почему нет, ты же их все тянуть не будешь, например надо посмотреть тебе какие товары есть в Мухасранске, так и пишешь:
    SELECT *
    FROM TableCityStock
    WHERE City IN (SELECT ID FROM TableCityProduct WHERE Product = 'Мухасранск') AS City

    А если еще и отфильтруешь по товару который тебе нужен, одна строчка только выйдет. Неужели не удобно?

    Другой вопрос как эта таблица заполнятся будет, по идее нужно два select что выбрать город и товар, потом пишут его количество в input и жмут кнопку записать. Делается insert или update в таблицу, в зависимости существует ли товар с нужным id в таком городе. Я бы еще время ввода данных добавил.
     
    AlexProg нравится это.
  7. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Подыму тему... Назрел вопрос...
    @Artur_hopf может ты в теме!?.

    Как хранить в базе и записать в базу?

    Есть добавление товара. Допустим Холодильник. Его нужно добавить допустим во все города, или только в Москву и Питер.

    Сейчас есть:
    - таблица городов
    - таблица товаров
    - таблица наличия товара в городе

    Связь по ID товара и ID города
     
  8. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Если бы я такое делал, я бы вытащил список из таблица городов, я думаю он не большой. Потом список товаров отдельно. И допустим мне надо отправить товар в 5ть городов, выбрал города из этого списка. Потом выбрал из другого списка товар который должен в них появится. И все у меня 6 ID . 5 ID городов и 1ID товара. Отправяем их post запросом в функцию или файлик. Там делаем INSERT INTO массива и вуаля. А чтобы во все города отправить, сделал бы галочку выбрать все города из списка.
    Вот как то так, ничего сложного. Немного javascripta наверное нужно будет.

    И да дату не забывать вставлять в таблицы, когда ты там товар этот добавил. Проще фильтровать будет.
     
    AlexProg нравится это.