Zastanawiam się nad uruchomieniem mojego pierwszego projektu CouchDB i pochodzącego z ORM-a. Zastanawiam się, jak tworzyć dokumenty, które mogą być trudne do utrzymania.noSQL i znormalizowane dane
Na przykład, jeśli mają następujący wzór:
A * ---> (1) B
co oznacza dla każdego obiektu jest przedmiotem B i istnieje wiele instancji który może współużytkować obiekt B. W tym przypadku istnieją wskaźniki/klucz obcy w A do B.
Mogłem utworzyć dokument zawierający wszystkie dane A i B. Mam jednak problem, jeśli na późniejszym etapie (po stworzeniu 10000 dokumentów), może będę musiał zmienić niektóre dane, co oznacza, że muszę zaktualizować wszystkie moje dokumenty.
W środowisku ORM/znormalizowanej bazy danych powinienem przeprowadzić prostą aktualizację B i wszystkie moje referencje znajdują się teraz w bazie danych.
Jak sobie z tym poradzić w CouchDB lub nie jest to podejście NoSQL dla tego typu sytuacji?
JD
+1 doskonałe informacje tutaj. – Petrogad
Zgadzam się. Myślę, że istnieją dwa główne wskaźniki: a) Ile razy zmieniasz osadzony obiekt? b) Czy chcesz wyświetlać obiekt osadzony za każdym razem, gdy wyświetlany jest obiekt nadrzędny? A jeśli tak, na jakim urządzeniu to robisz (np. Czy zapytanie jest możliwe, czy nie). Ponieważ jeśli zmienia się tylko raz na 100000 dokumentów, to prawdopodobnie łatwiej jest je przechowywać osadzone i raz zmienić, a następnie zapytać za każdym razem, gdy obiekt zostanie wyświetlony użytkownikowi – rit
Dzięki za informacje. Obiekt osadzony zmieniałby się tylko w wyjątkowych okolicznościach. TAK, czy mówisz, że powinienem był go osadzić (tzn. Dokument zawiera A i B)? Kwerenda jest ważna, ponieważ będzie używana przez każde żądanie. Czy możesz trochę wyjaśnić? –