Ну да ладно, задача такова:
Я заказываю на сайте товары и т.д..оформляю товар, и моему заказы присваивается ID и отправляется в БД со всем что я заказал. По идее в таблице "order" должен хранится только id заказа, дата, и содержание данного заказа, чтобы потом можно было посмотреть что я заказал.
Как бы правильно это организовать? я подумал так, что в поле "содержание данного заказа" должен помещаться массив из id товаров, чтобы потом просто вытащить по ним что я заказывал. Вот примерно структура таблицы order
1) id
2) date
3) id_price <- вот сюда должны помещать id товаров array(1,2,3,4)
4) status
Как занести массив в ячейку id_price? и как потом с ним работать когда я его вытащу?
Может другую структуру заказов сделать?
Спасибо =)
Спустя 20 минут, 12 секунд (22.11.2010 - 21:09) kovaldm написал(а):
Слово сериализация знакомо?
Или explode/implode?
А вобще если хранить все заказы в БД, то придется для каждого покупателя отдельную строку в таблице отводить. При большом количестве пользователей будет не айс.
Или explode/implode?
А вобще если хранить все заказы в БД, то придется для каждого покупателя отдельную строку в таблице отводить. При большом количестве пользователей будет не айс.
Спустя 9 минут, 11 секунд (22.11.2010 - 21:18) Nikitian написал(а):
Забудьте про сериализацию - не для того она сделана.
У вас есть таблица товаров, есть таблица заказов. Создаётся ещё одна таблица: товары в заказе. Эта таблица имеет 3 поля: id заказа, id товара, стоимость (если какая акция была или просто цена на товар изменилась).
У вас есть таблица товаров, есть таблица заказов. Создаётся ещё одна таблица: товары в заказе. Эта таблица имеет 3 поля: id заказа, id товара, стоимость (если какая акция была или просто цена на товар изменилась).
Спустя 2 минуты, 14 секунд (22.11.2010 - 21:21) kovaldm написал(а):
Nikitian
Чем вариант с implode() плох?
Чем вариант с implode() плох?
Спустя 10 минут, 59 секунд (22.11.2010 - 21:32) sergeiss написал(а):
Цитата (kovaldm @ 22.11.2010 - 22:21) |
Чем вариант с implode() плох? |
Я за него отвечу.
Сей вариант плох тем, что не позволяет делать быстрые и удобные выборки. Очень сложно вносить любые изменения (редактировать, добавлять новое, удалять).
То, что сказал Никитиан - это нормальная организация данных в БД.
Спустя 5 минут, 17 секунд (22.11.2010 - 21:37) kovaldm написал(а):
sergeiss
Сенкс.
Сенкс.
Спустя 1 минута, 56 секунд (22.11.2010 - 21:39) sharki написал(а):
kovaldm
Не, жести не будет, каждый пользователь при оформлении заказа будет регица, ну т.е у меня уже готова система регистрации и т.д..все работает на сайте.
Под юзеров есть своя таблица, там его пароль логин и т.д..
Под товары своя таблица, у каждого товара свой id описание и т.д
Под заказы своя таблица-та которую я описал.
Nikitian
Не, жести не будет, каждый пользователь при оформлении заказа будет регица, ну т.е у меня уже готова система регистрации и т.д..все работает на сайте.
Под юзеров есть своя таблица, там его пароль логин и т.д..
Под товары своя таблица, у каждого товара свой id описание и т.д
Под заказы своя таблица-та которую я описал.
Nikitian
Цитата |
Создаётся ещё одна таблица: товары в заказе. Эта таблица имеет 3 поля: id заказа, id товара, стоимость |
Получается, повторный контент? лучше чтобы заносились именно id товара id юзера на кого оформлен заказ
Чтобы потом можно было сделать в ЛК такую фишку, типа тыкнул мои заказы, там происходит выборка из заказов принадлежащих именно этому юзеру, и потом выводятся все эти товары по каждому из заказов
Спустя 2 минуты, 35 секунд (22.11.2010 - 21:41) sharki написал(а):
Мне нужна именно возможность заносить в ОДНО поле ID товары, много ID товаров данного заказа, чтобы потом было удобно вытащить эти ID товаров, и по ним выстроить табличку
Спустя 2 минуты, 41 секунда (22.11.2010 - 21:44) sergeiss написал(а):
sharki - если ты хочешь получить качественный функционал, чтобы можно было легко и просто заносить, редактировать и удалять данные, то подумай над тем, что тебе уже описал Никитиан! Потому что то, что ты "хочешь" сделать (именно возможность заносить в ОДНО поле ID товары, много ID товаров данного заказа) НЕ ДАСТ тебе возможность "удобно вытащить эти ID товаров, и по ним выстроить табличку". Будет один сплошной гимор и никакого фунционала.
Ты можешь как-то варьировать эту идею, но ни в коем случае не заноси массив таких данных в одно поле! Потому что потом будешь переделывать и БД, и скрипт
Ты можешь как-то варьировать эту идею, но ни в коем случае не заноси массив таких данных в одно поле! Потому что потом будешь переделывать и БД, и скрипт

Спустя 50 секунд (22.11.2010 - 21:45) Nikitian написал(а):
Цитата (sharki @ 22.11.2010 - 18:39) | ||
Nikitian
Получается, повторный контент? лучше чтобы заносились именно id товара id юзера на кого оформлен заказ |
Вы уверены, что пользователи не будут возвращаться и делать повторные заказы?
И при такой организации не намного сложнее получить список заказов конкретного пользователя, а можно и добавить ещё одно поле: идентификатор пользователя, если так надобно это.
Спустя 1 минута, 30 секунд (22.11.2010 - 21:46) kovaldm написал(а):
Цитата (sharki @ 22.11.2010 - 21:39) |
Получается, повторный контент? лучше чтобы заносились именно id товара id юзера на кого оформлен заказ |
Гдеж повторный? Заказы будут только в этой таблице. Только наверно лучше так
Вторая таблица: id заказа, id товара, стоимость.
Первая таблица: id покупателя, date, id заказа, status.
То есть, если в первой таблице поле 'id заказа' пустое, значит заказов нет/корзина пуста.
Спустя 3 минуты, 18 секунд (22.11.2010 - 21:50) sharki написал(а):
Цитата |
Вы уверены, что пользователи не будут возвращаться и делать повторные заказы? |
Создается еще одно поле под новый заказ под следущим ID например 5, и туда опять заносятся только ID товаров и юзера...и перегрузки не будет..и при изменении цены или описании товара будет меняться везде. т.е каждая таблица делает своё, и все свзаны между собой цепочкой.
Спустя 49 секунд (22.11.2010 - 21:51) sharki написал(а):
kovaldm
Во, вроде начинаю понимать, щас нарисую на листочке
Во, вроде начинаю понимать, щас нарисую на листочке
Спустя 5 минут, 7 секунд (22.11.2010 - 21:56) sharki написал(а):
kovaldm
Nikitian
В итоге получается типа такой структуры одного из заказов
id заказа | id товара |
323 | 3 |
323 | 53 |
323 | 7 |
323 | 9 |
Вот например другой уже офрмленный заказ
id заказа | id товара |
544 | 1 |
544 | 65 |
544 | 7 |
544 | 77 |
Nikitian
В итоге получается типа такой структуры одного из заказов
id заказа | id товара |
323 | 3 |
323 | 53 |
323 | 7 |
323 | 9 |
Вот например другой уже офрмленный заказ
id заказа | id товара |
544 | 1 |
544 | 65 |
544 | 7 |
544 | 77 |
Спустя 2 минуты, 24 секунды (22.11.2010 - 21:58) kovaldm написал(а):
Только про количество товара забыли...
Спустя 3 минуты, 1 секунда (22.11.2010 - 22:01) sharki написал(а):
Ну с этим ладно, тоже можно добавить поле и прописывать, а это самая оптимальная структура?
Спустя 14 минут, 25 секунд (22.11.2010 - 22:15) Nikitian написал(а):
Да, оптимальная, если у вас нет изысков вида: "при заказе нескольких одинаковых наименований товара, каждое следующее идёт со скидкой +5% относительно предыдущего." Я к тому, что всё зависит от задачи, а ваше тз мы не читали и опираемся лишь на самый общий вариант )
Спустя 2 минуты, 35 секунд (22.11.2010 - 22:18) sharki написал(а):
Да нет, про % заказчики слава богу еще не додумались))
Теперь можно дальше работать над магазином...
Спасибо мужики)) как всегда всё грамотно объяснят))
Теперь можно дальше работать над магазином...
Спасибо мужики)) как всегда всё грамотно объяснят))
Спустя 26 секунд (22.11.2010 - 22:18) kovaldm написал(а):
Цитата |
"при заказе нескольких одинаковых наименований товара, каждое следующее идёт со скидкой +5% относительно предыдущего." |
И с такой структурой это можно организовать стредствами php.
Спустя 3 минуты, 14 секунд (22.11.2010 - 22:22) sharki написал(а):
А это уже в следующих сериях))