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

Най-добри практики за NoSQL

Мисля, че в момента цялата идея за хранилищата на данни NoSQL и концепцията за бази данни с документи е толкова нова и различна от установените идеи, които управляват релационното съхранение, че в момента има много малко (ако има такива) най-добри практики.

На този етап знаем, че правилата за съхраняване на вашите данни в рамките на CouchDB (или всяка друга база данни с документи) са доста различни от тези за релационна база данни. Например, до голяма степен е факт, че нормализирането и стремежът към 3NF не е нещо, към което човек трябва да се стреми. Един от често срещаните примери би бил този на обикновен блог.

В релационен магазин ще имате таблица за „Публикации“, „Коментари“ и „Автори“. Всеки автор ще има много публикации и всяка публикация ще има много коментари. Това е модел, който работи достатъчно добре и картографира добре всяка релационна база данни. Въпреки това, съхраняването на едни и същи данни в docDB най-вероятно би било доста различно. Вероятно ще имате нещо като колекция от Post документи, всеки от които ще има собствен автор и колекция от коментари, вградени направо. Разбира се, това вероятно не е единственият начин, по който можете да го направите, и е донякъде компромис (сега заявката за отделна публикация е бърза - извършвате само една операция и получавате всичко обратно), но няма начин да поддържате връзката между автори и публикации (тъй като всичко това става част от документа за публикацията).

Аз също съм виждал примери, използващи атрибут "тип" (в пример на CouchDB). Разбира се, това звучи като жизнеспособен подход. Най-добрият ли е? Нямам представа. Със сигурност в MongoDB бихте използвали отделни колекции в рамките на база данни, което прави атрибута тип пълна глупост. В CouchDB обаче... може би това е най-доброто. Другите алтернативи? Отделни бази данни за всеки тип документ? Това изглежда малко лудо, така че аз самият бих се насочил към решението "тип". Но това съм само аз. Може би има нещо по-добро.

Осъзнавам, че се размърдах доста тук и казах много малко, най-вероятно нищо, което вече не знаете. Искам да кажа следното – мисля, че от нас зависи да експериментираме с инструментите, които имаме, и данните, с които работим, и с течение на времето добрите идеи ще се разпространят и станат най-добрите практики. Просто мисля, че питаш твърде рано в играта.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка при зареждане на YAML конфигурационни файлове в Rails

  2. Повишете вторичния към първичния от вторичен възел

  3. Mongodb $in срещу поле от обекти от масив вместо обекти от масив

  4. Свържете java проект към база данни на mongodb

  5. Агрегиране на ниво месец и ниво година, също намерете средната стойност в MongoDB