2012-01-14 13 views
7

यह प्रश्न आवश्यक नहीं है कि कॉचबेस 2.0 पूर्वावलोकन विशिष्ट विकसित करे, हालांकि मुझे लगता है कि यह नए कोचबेस उत्पाद में जांच के साथ लोगों की सहायता कर सकता है।कॉचबेस डेटा मॉडलिंग - दस्तावेज़ उन्मुख

मैं डेटा मॉडलिंग पर सलाह ढूंढ रहा हूं। हम रीचटाइम Analytics के लिए संभवतः इसका उपयोग करने के लिए सोफेबेस की जांच कर रहे हैं।

हालांकि मुझे वास्तविक दुनिया डेटा को मॉडल करने के तरीके के बारे में कोई दस्तावेज नहीं मिल रहा है।

मैं एक परिदृश्य का प्रस्ताव दूंगा और यदि समुदाय मेरी मदद कर सकता है या कुछ विचारों पर चर्चा कर सकता है कि इसे कैसे बनाया जा सकता है तो यह बहुत उपयोगी होगा?

नोट यह हमारे उत्पाद के प्रतिनिधि नहीं है और मैं लोगों से नहीं कर रहा हूँ हमारे लिए हमारे मॉडलिंग हल करने के लिए सवाल चर्चा के लिए अधिक इच्छित

मानते हैं कि ग्राहकों को एक विशेष तिथि पर उत्पादों की खरीद करने के/की सुविधा देता है है समय, उत्पादों के साथ आईडी, नाम, विवरण और मूल्य जैसे जानकारी है, एक तारीख को एक खरीद किया जाता है।

प्रारंभिक आवश्यकता दो तिथियों के बीच सभी खरीदों को गिनने में सक्षम होना है। किसी भी 1 दिन के लिए 100,000 से अधिक खरीदारियां हो सकती हैं - यह एक बहुत बड़ा व्यवसाय है;)

यदि कोई वाक्यविन्यास गलत है तो कृपया मुझे बताएं - सभी सलाह/सहायता का स्वागत है।

अगर हम तो जैसे डेटा कुछ (जो शायद पूरी तरह गलत) मॉडलिंग: उत्पादों के साथ

खरीदारियां

{ 
    "_id" : "purchase_1", 
    "_rev" : "1-1212afdd126126128ae", 
    "products" : [ 
     "prod_1" : { 
      "name" : "Milk", 
      "desc" : "Semi-skimmed 1ltr", 
      "price" : "0.89" 
     }, 
     "prod_7568" : { 
      "name" : "Crisps", 
      "desc" : "Salt and Vinegar", 
      "price: "0.85" 
     } 
    ] 
    "date" : "2012-01-14 14:24:33" 
} 

{ 
    "_id" : "purchase_2", 
    "_rev" : "1-1212afdd126126128ae", 
    "products" : [ 
     "prod_89001" : { 
      "name" : "Bread", 
      "desc" : "White thick sliced", 
      "price: "1.20" 
     } 
    ] 
    "date" : "2012-01-14 15:35:59" 
} 

ताकि दस्तावेज़ लेआउट हम प्रत्येक खरीद देख सकते हैं और हम देख सकते हैं दिया उत्पाद जो उस खरीद में थे - हालांकि हम दो तिथियों के बीच सभी खरीदों को गिनने के बारे में कैसे जा सकते हैं? साथ ही आप उतरने के क्रम में दो तिथियों के बीच सभी खरीदारियों का लॉग कैसे देख सकते हैं?

क्या यह कुछ सोचबेस के लिए उपयुक्त है?

हो सकती है दो तिथियों और ग्राहक के बीच खरीद लाखों की रिपोर्ट के लिए प्रतीक्षा करने के लिए ... .as मुझे यकीन है कि हर किसी का अनुभव किया है कर रहा हूँ पसंद नहीं करता है;)

यह सबसे अच्छा होगा incr उपयोग करने के लिए कार्य और यदि ऐसा है तो आप डेटा मॉडलिंग के बारे में कैसे जाएंगे?

किसी को भी धन्यवाद जो इसे पढ़ता है - मुझे उम्मीद है कि यदि संभव हो तो असली दुनिया मॉडलिंग समस्याओं के और उदाहरण दे रहे हैं।

जेम्स

+0

हाय सब, काउचआधारित आईआरसी चैनल पर एक सहायक उपयोगकर्ता मुझे 'CouchConf' दुनिया की सैर पृष्ठों की दिशा में इशारा किया गया है। वीडियो के साथ कई प्रस्तुतियों और प्रत्येक सम्मेलन से स्लाइड के साथ कई प्रस्तुतियां हैं। http://www.couchbase.com/couchconf-world-tour विशेष रूप से सैन फ्रांसिस्को में बहुत सारी सहायक सामग्री है। http://www.couchbase.com/couchconf-sanfrancisco – eggsy84

उत्तर

6

सबसे सामान्य स्थिति में आप एक नक्शा समारोह है कि एक कुंजी के रूप दिनांक फ़ील्ड का उपयोग कर कोई दृश्य बनाते हैं लिख सकते हैं।

तो एक थोड़ा संशोधित दस्तावेज़ डिजाइन के साथ:

{ 
    "_id": "purchase_1", 
    "_rev": "2-c09e24efaffd446c6ee8ed6a6e2b4a22", 
    "products": [ 
     { 
      "id": "prod_3", 
      "name": "Bread", 
      "desc": "Whole wheat high fiber", 
      "price": 2.99 
     } 
    ], 
    "date": "2012-01-15 12:34:56" 
} 

{ 
    "_id": "purchase_2", 
    "_rev": "2-3a7f4e4e5907d2163d6684f97c45a715", 
    "products": [ 
     { 
      "id": "prod_1", 
      "name": "Milk", 
      "desc": "Semi-skimmed 1ltr", 
      "price": 0.89 
     }, 
     { 
      "id": "prod_7568", 
      "name": "Crisps", 
      "desc": "Salt and Vinegar", 
      "price": 0.85 
     } 
    ], 
    "date": "2012-01-14 14:24:33" 
} 

आपका नक्शा समारोह दिखाई देगा:

function(doc) { 
    for (var product in doc.products) { 
    emit(doc.date, doc.products[product].price); 
    } 
} 

आप वैकल्पिक रूप से एक समारोह को कम उस तारीख से खरीद योग हैं जोड़ सकते हैं।

function(keys, values) { 
    return sum(values); 
} 

तब आप स्टार्टकी और एंडकी पैरामीटर का उपयोग करके दृश्य क्वेरी कर सकते हैं।

http://localhost:5984/couchbase/_design/Products/_view/total_price_by_date?startkey="2012-01-01"&endkey="2012-01-31"&group=true 

दृश्य क्वेरी करने से उत्पादन होगा:

{"rows":[ 
{"key":"2012-01-14 14:24:33","value":4.94}, 
{"key":"2012-01-15 12:34:56","value":2.99} 
]} 

या पूरे समय अवधि के लिए राशि प्राप्त करने के लिए समूह पैरामीटर निकालें:

{"rows":[ 
{"key":null,"value":7.930000000000001} 
]} 

आशा है कि मदद करता है।

- जॉन

+1

ग्रेट उत्तर आपको धन्यवाद! तो सोफेबेस के साथ डेटा मॉडल करने का यह आम तरीका है? उदाहरण के लिए। आइए मान लें कि मैं यह जानना चाहता था कि प्रति दिन कितने उत्पाद बेचे गए थे (कुल मूल्य नहीं) यह आमतौर पर इस तरह मॉडल किया जाएगा और फिर एक दृश्य और मानचित्र/कम से कम गणना की जाती है या लोग डेटा को स्टोर करने की अपेक्षा करते हैं इसे पढ़ने के लिए - काउंटर (incr) फ़ंक्शन या कुछ समान उपयोग करके? – eggsy84

संबंधित मुद्दे