MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb и mongomapper

Добре, аз не съм експерт по Ruby/Mongomapper, така че няма да мога да картографирам това в „модели“. Въпреки това, ако погледнете това от гледна точка на Mongo, ето как вероятно искате да изглеждат данните в Mongo.

Колекция: Категория

{"_id" : "car"}
{"_id" : "vintage_car", "parent" : "car", "fields" : ["year" : "integer", "original_parts" : "boolean", "upgrades" : "text"] }

Колекция :Продукти

{"_id" : "1234", "name" : "Model-T", "category" : "car", "sub-category" : "vintage_car", "values" : ["year" : 1942, "original_parts" : false, "upgrades : "XM Radio"] }

Така че това, което имате тук, е доста просто. Имате една колекция, която съдържа всички категории и подкатегории. Ако даден обект е „Подкатегория“, той ще има набор от полета „родител“. Ако няма поле "родител", тогава този обект е "Категория".

Всяка подкатегория има елемент "полета". "полета" всъщност е масив от двойки. Това ще улесни изобразяването. Ако някой въведе ретро автомобил, търсите категорията „ретро автомобил“ и след това преминавате през „полетата“, за да изобразите съответните полета за въвеждане. Използвах прости неща като "integer" и "boolean", но наистина можете да поставите каквото искате тук ("datepicker", "checkbox", ...) всичко зависи от вас.

Сега самият продукт основно съхранява препратка както към категорията, така и към подкатегорията. Той също така съхранява стойностите за всички полета, които сте въвели.

Така че продуктът разполага с всички необходими данни, което би трябвало да направи всеки продукт доста лесен за изобразяване. Заредете продукта и подходящата подкатегория и ще имате цялата необходима информация за динамично изобразяване на страницата.

РЕДАКТИРАНЕ

В отговор на коментара, „полетата“ в Категория може да се изгради с мерна единица:

..."fields" : [{"length","meters","float"},{"weight","kg","float"},...]




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cassandra срещу MongoDB:кое да изберете

  2. Mongo:как да сортирате по външно тегло

  3. MongoDB - отворена и затворена връзка - съвет за добра практика

  4. Дизайн на схема на база данни Mongodb със споделени данни

  5. получавате различни стойности със сортирани данни