Как уловить порядок в этом мире? Будет ли заказ просто новым документом в коллекции заказов?
да. Так работают эти базы данных.
Будет ли order_item относиться к продукту, указанному в другом документе?
Это могло бы. Зависит от того, что вы делаете.
Или предполагается, что order_item будет скопирован и вставлен в документ заказа
Также возможно. Это хорошо работает для исторического анализа и хранения данных.
и поэтому, может быть, трудно сообщить об общем количестве проданного продукта за определенный период времени?
Всегда трудно сообщить об общем количестве проданного продукта с течением времени.
На сегодняшний день продукт "23SKIDOO" - это 23л, открытый клапан, фрамистат с двойными штуцерами.
В прошлом году, до отзыва, таким же продуктом был 23-литровый фрамистат с закрытым клапаном и только одним штуцером.
В прошлом году тот же продукт был на самом деле 22,5 л.
Это "один и тот же" продукт? Маркетинг называет их всех «23SKIDOO». Но есть отличия.
Одна таблица Product не разрешает это правильно. Затем люди изобретают линейки продуктов и семейства продуктов, чтобы они могли представить продукты «23SKIDOO-B» и «23SKIDOO-PLUS», которые являются частью семейства «23SKIDOO».
Линии продуктов и семейства продуктов, а также другие более причудливые группировки — это обходные пути и уловки, позволяющие волшебным образом объединить отчеты о несвязанных продуктах и предоставить «общее количество продуктов, проданных с течением времени», даже если продукты явно различаются.
Копирование продукта в заказ (хотя это и кажется расточительным) может сохранить большую историческую достоверность, чем многие широко используемые обходные пути.
Как можно обойти отсутствие транзакций и сохранить целостность?
MongoDB имеет блокировки. http://www.mongodb.org/display/DOCS/How+does+concurrency+work.
Непонятно, что вы подразумеваете под отсутствием транзакций.
person
S.Lott
schedule
04.02.2011