Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2013, 10:44
Интересующийся
Отправить личное сообщение для pharrell Посмотреть профиль Найти все сообщения от pharrell
 
Регистрация: 27.04.2011
Сообщений: 20

Архитектура БД для заказов интернет магазина.
Магазин на NodeJS и Mongo DB.
Кто не знаком с принципом работы монго, объясню вкратце - запись в таблице это все равно что объект JS. Ну или это можно назвать JSON форматом.
Так вот в таблице Users у меня хранится информация о пользователе, о его заказе, о его корзине. В данный момент что то типа такого http://pastebin.com/jhxCTyh0 для тех кому лень переходить по ссылке приведу данные внизу.
{
	_id:1,
	order:{
		id:1,
		cart:[
			{
				item:3,
				amount:2,
				price:2990
			},
			{
				item:2,
				amount:1,
				price:7990
			}
		]
		date:"22.02.2013",
		name:"Дмитрий",
		phone:"89090000000"
	},
	browser:"Chrome",
	date:"22.02.2013"
}

У меня возникла проблема, как хранить все заказы пользователя? К примеру, оформил он первый заказ, что делать дальше?
Я обдумывал несколько вариантов.
1) Сделать поле orders нумерованным массивом
[ { order_id : 1 , cart : [...] , completed: 1 }, { order_id : 2 , cart : [...] } ]

и писать туда к уже оформленным заказам completed=1. Но с этим подходом есть несколько проблем. Во первых что бы получить нужный мне заказ, мне надо запросить все.
Во вторых что бы определить какой их полученных заказов мне нужен, надо использовать цикл.
2) Сделать два поля: Order и CompletedOrders.
Структура та же самая, что и в первом примере, только при оформлении данные переносятся из Order в CompletedOrders, тогда нет проблем с получением лишних данных при запросе текущего заказа. Но при запросе всех оформленных такая проблема остается. Плюс будут некоторые разногласия в коде, возможно даже придется писать два класса вместо одного, что я делать не хочу, и вообще это не правильно.
Буду очень рад, если кто нибудь поможет найти решение.
С меня 100 рублей на телефон)
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2013, 14:03
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

монго - это принципиально?
для хранения данных она не очень ок, в серьёзных проектах как правило она дублирует данные из "нормальной" нормализованной релятивистской бд)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Новая система управления сайтом Scripto CMS deepslam Ваши сайты и скрипты 38 31.01.2011 14:55
проблема с ActiveXObject для интернет эксплорера lavr AJAX и COMET 2 05.07.2010 23:49
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31