[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Занести массив в поле БД
sharki
Всем привет, непонятный поиск на форуме, вписываешь ключевые слова "массив mysql" и т.д или предложения, он говорит что ничего не найдено...

Ну да ладно, задача такова:
Я заказываю на сайте товары и т.д..оформляю товар, и моему заказы присваивается 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?
А вобще если хранить все заказы в БД, то придется для каждого покупателя отдельную строку в таблице отводить. При большом количестве пользователей будет не айс.

Спустя 9 минут, 11 секунд (22.11.2010 - 21:18) Nikitian написал(а):
Забудьте про сериализацию - не для того она сделана.
У вас есть таблица товаров, есть таблица заказов. Создаётся ещё одна таблица: товары в заказе. Эта таблица имеет 3 поля: id заказа, id товара, стоимость (если какая акция была или просто цена на товар изменилась).

Спустя 2 минуты, 14 секунд (22.11.2010 - 21:21) kovaldm написал(а):
Nikitian
Чем вариант с 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
Цитата
Создаётся ещё одна таблица: товары в заказе. Эта таблица имеет 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 товаров, и по ним выстроить табличку". Будет один сплошной гимор и никакого фунционала.

Ты можешь как-то варьировать эту идею, но ни в коем случае не заноси массив таких данных в одно поле! Потому что потом будешь переделывать и БД, и скрипт smile.gif

Спустя 50 секунд (22.11.2010 - 21:45) Nikitian написал(а):
Цитата (sharki @ 22.11.2010 - 18:39)
Nikitian
Цитата
Создаётся ещё одна таблица: товары в заказе. Эта таблица имеет 3 поля: id заказа, id товара, стоимость


Получается, повторный контент? лучше чтобы заносились именно 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 |

Спустя 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 написал(а):
А это уже в следующих сериях))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.