За последние 24 часа нас посетили 16172 программиста и 1666 роботов. Сейчас ищут 896 программистов ...

Продумать БД

Тема в разделе "PHP и базы данных", создана пользователем allowance, 1 май 2010.

  1. allowance

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

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Имеется товар, при добавлении товара, нужно указывать город(города) при помощи checkbox'ов. Товар может находится как в одном городе так и в 20-ти городах. Как лучше составить БД? Я думаю так:
    БД товаров(записывается id товара и всякая всячина), запрос добавления в БД товаров.
    БД городов(записываются id товара и id города), многократный или однократный запрос добавления в БД города/городов. При выборе конкретного города выбираются товары по id данного города. Как бы двойной запрос сначала к БД городов, получаем id товаров и далее запрос к БД товаров с конрнетными id товаров.
    Можно ли упростить задачку?
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Когда городов станет 2000, а товаром станут спички - что будем делать?

    Есть три таблицы.
    Код (Text):
    1. Товары <-> товары-в-городах <-> Города
    2. item_id, item_name  <->  item_id, city_id <-> city_id, city_name
    Вторая половина текста про скидки и задачку - непонятна.
     
  3. allowance

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

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Simpliest
    Sorry, запарился, скидку заменил на товар. Вторая половина для вывода товаров по городу для пользователя.
    Значит нужно 3 таблицы. Смущает то, что для каждого города нужен запрос при добавлении товара в БД, т.е если добавляем товар на 10 городов то нужно 10 запросов в БД!

    Я думаю что не станет или вы намекаете на альтернативу checkbox'ам?
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    allowance
    да не намекают, нормализацию даже написали)
     
  5. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Это можно сделать 1 запросом. Тем более что данные все приходят сразу.

    Ну если не станет - то ради бога.
    Но над таким вещами надо задумываться (проверять граничные случаи).