Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 00:49   #1
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию Проектирование БД для инт. магазина ?

Доброго времени суток.

Поделитесь опытом , как вы проектируете базу для инт. магазина ?
.............................
Я пишу свой инт. магазина книг, не для продаж а для практики.

У меня есть 3 таблицы.

Таблица "Товаров" . Каждый ряд хранит всю инфу о книге.


Таблица "Корзина" куда по сессии юзера записываются все товары которые он выбрал.

Таблица "Заказов". куда заносятся все данные юзера если он оформил заказ.

И ещё думаю нужна таблица с ID юзера где хранить то что он купил. После оформления заказа.

Но тоже не уверен что так правильно будет.
.................................
Как будет правильнее ?
Если юзер добавил товар в корзину , то нужно создавать новую "Персональную корзину" с ID юзера ?
и при оформлении заказа её просто удалять.

Или же всё в одну кучу . одна таблица "корзина" а там уже по id выбирать.

Да и ещё , как долго хранить сессию, если нету регистрации. Так сказать покупка на лету .
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 11.04.2012, 12:26   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Я остановился на таком варианте.

Таблица "корзина" с именем сессии и с товаром который выбрал пользователь , создаётся при первом добавленном товаре. А по завершению и оправки заказа , данные пользователя записываются в таблица "Одрерс" а таблица "корзина" переименовывается в имя пользователя + сессия. Так же все таблицы "корзины" которые старше 10 дней удаляются автоматически.
................................... ...
Но это всё понятно.
Но как такие магазины устроены по настоящему ? Кто может дать хороший совет ?
Правильно что таблицы создаются на лету или нет. Или это вообще не важно. Леж бы всё было аккуратно .
Читал про таблицы первого , второго уровня. У меня так и получается все первого уровня, кроме корзины. она хранит только номера , которые ссылаются на главную таблицу.

пример того что получилось у меня, можно посмотреть тут
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 11.04.2012 в 12:31.
pompiduskus вне форума Ответить с цитированием
Старый 11.04.2012, 13:26   #3
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Никогда не создавайте таблицы динамически !!!! Зачем вам это надо ? Пишите все в одну ! Хоть это и субъективно, но ваш подход полностью денормализует данные, что противоречит логике реляционныз БД + теоретически это все может упереться в проблемы с файловой системой.
Cronos20 вне форума Ответить с цитированием
Старый 11.04.2012, 14:38   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Cronos20 +1

В общих чертах - корзины и заказы в одной таблице, предусмотрев поле с видом записи, изменив которое запись из разряда "из корзины" попадает в разряд "заказы"
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.04.2012, 14:47   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

а для чего вообще хранить корзину в БД?
В сессию её!... и только если заказ реален - записываем в БД
ADSoft вне форума Ответить с цитированием
Старый 11.04.2012, 17:21   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Цитата:
а для чего вообще хранить корзину в БД?
В сессию её!... и только если заказ реален - записываем в БД
Да точно , как то я лоханулся. На самом деле можно её просто в сессию :s

Цитата:
Никогда не создавайте таблицы динамически
А почему ? Есть какие то проблемы с этим , или просто не рекомендуется ?
................................... ..

Спасибо всем за добрый совет !
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 12.04.2012, 07:55   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
А почему ? Есть какие то проблемы с этим , или просто не рекомендуется ?
ну ерунда получается потому-что..... ладно 10 заказов.. а 1000, 100000? представляете - под каждый заказ - новая таблица? причем все таблицы одинаковые по своей структуре и разные по имени - имена уникальные замучаетесь генерировать. Какой в них смысл? - с тем же успехом - строчки в таблице.
ADSoft вне форума Ответить с цитированием
Старый 12.04.2012, 17:01   #8
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Всё понял. Спасибо ещё раз.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CMS для интернет магазина ssdm WordPress и другие CMS 20 05.01.2017 01:41
Движок для интернет-магазина zhiharka WordPress и другие CMS 3 01.06.2016 19:32
Проектирование таблицы в бд для гостевой pompiduskus PHP 3 13.02.2012 18:59
Проектирование БД для склада Ivan_32 SQL, базы данных 3 27.09.2010 14:08
Ищется фрилансер для сборки магазина Vladimir33 Фриланс 1 25.12.2007 09:47