Привет, подскажите пожалуйста как лучше всего сделать. Есть данные Страна:Россия, Товар:яблоки, цена:55 Страна:Россия, Товар:сковородки, цена:171 Страна:Китай, Товар:яблоки, цена:38 Страна:Россия, Товар:сковородки, цена:192 Задача - записать их в БД и затем выбирать товар по максимальной или минимальной цене. Вопрос - как проще организовать все это дело, создавать 2 таблицы Россия, Китай со столбцами товар и цена, или пихать все в одну таблицу со столицами товар, цена, товар2, цена2 с условием, что затем будет выборка товара с минимальной, или максимальной ценой
А про нормализацию данных почитать? Таблица стран, таблица товаров, таблица цен (товар-цена). Выборка с применением JOIN. Максимумы, минимумы, средние и так далее - агрегатами. Пожалуйста.
если выбирать только по цене, то тут и одной таблицы хватит. но завтра у тебя появятся разные цены на один и тот же товар по разным причинам, или ты захочешь выбирать все товары какой-то страны, или товары, являющиеся посудой (нужно еще разделить на категории товаров. Этого нет в описанном.) И думать об этом надо уже сегодня. Либо сразу делать по уму, либо заложить возможность лёгкого и быстрого добавления таблиц. Предложенный тобой вариант: полный бред, если что...
так цены уже сейчас разные я хочу сделать вывод из БД всех товаров разница в цене которых с минимальной ценой от 5%, что бы выглядело это так HTML: <table> <tr><td>Товар</td><td>Китай</td><td>Россия</td><td>Польша</td></tr> <tr><td>Яблоки</td><td>72</td><td>76</td><td>77</td></tr> </table> Так вот и хочу сразу начать делать правильно, что бы потом не переделывать, просто не знаю как и с чего начать
А каким образом происходит запись в такую таблицу потом, что-то никак не могу найти ничего, покажите пример пожалуйста. Ну понятно связанные пола автоматически заполнятся, а с остальными что?
Там будет несколько таблиц. Одна с самим товаром и остальные с параметрами этого товара. Например, все категории товаров перечисленны в отдельной таблице. А в баблице с товаром id категории, к которой товар принадлежит. Сами категории могут иметь внешний ключ к себе же. Т е поле внешнего ключа связывается с первичным ключом этой же таблицы. Это нужно для формирования дерева категорий, но первое время с этим можно не заморачиваться. Если хочешь несколько цен для одного товара, то это еще одна таблица... Короче изучай) С моих слов всё равно нихрена не поймёшь. Нужно уловить саму суть механизма формирования структуры БД. Но это если по уму делать. А так, можно нахерачить всё в одну таблицу, наговнокодить и забыть о масштабировании проекта)))
Нет вопрос не в этом, я создал несколько отдельных таблиц goods(id,type,desctription), country(idCountry, country) и prices(idPrices, price) создал связь в phpmyadmin id, idCountry и idPrices, но как теперь написать запрос на добавление во всё это дело? Можете показать пример? Поле type уникально и запрос раньше выглядел вот так, когда в базе была 1 страна Код (Text): INSERT INTO $bd (type, country, price) VALUES ('$v1', '$v2', '$v3') on duplicate key update bid = values(country), ask = values(price) Получается, что вставка в разные таблицы теперь и для каждой надо отдельный запрос?
сначала заполняешь таблицы без внешних ключей, а потом с внешними ключами т е в твоём случае - страны,товары, цены
ну а как быть с уникальностью? мне не нужно добавлять новые строки если такой товар уже есть в базе, а нужно просто обновить цены на него и всё теперь в 1 выражение уже ничего не сделать при таком подходе?
не понимаю... нужно обновить цены - обновляешь цены. ты это для обучения делаешь или реально магазин себе пилишь и не знаешь, что есть готовые?
нет это я пример выдумал, для обучения сделал, потом расширил пример до нескольких стран с товарами и не понял как быть в этом случае Ну так я же добавлял товары если таких ещё нет в таблице (поле type ведь оно уникальное) и по ключу on duplicate key оно проверялось, если совпадение было, то обновлялись цены, а теперь цены в другой таблице, как тут быть?
но так для каждой таблице же нужно писать отдельный запрос на добавление данных, а как потом обновлять в 2х других если в них нет поле type по которому проходит проверка уникальности?! Да блин вы можете просто показать похожий пример?
http://theory.phphtml.net/tasks/php/sql/prodvinutye-sql-zaprosy.html http://2sql.ru/novosti/sql-inner-join/ http://www.skillz.ru/dev/php/article-Obyasnenie_SQL_obedinenii_JOIN_INNER_OUTER.html