Mamy obecnie ładnie relacyjną bazę danych SQL Server 2008, która jest naszą główną bazą danych aplikacji. Szukamy usprawnienia istniejącego mechanizmu przechowywania dokumentów, który wykorzystuje typy danych xml z czymś bardziej bezproduktywnym, które może obsłużyć podobne, ale nie identyczne dokumenty i pomyślał, że couchdb byłby odpowiedni.Używanie kanapy i serwera sql obok siebie
Chodzi o to, że wspólne dane meta dotyczące dokumentów mogą być przechowywane w serwerze sql dla łatwości wyświetlania/agregacji/raportowania, ale rzeczywiste dokumenty są przechowywane na kanapie, aby obsłużyć subtelne różnice w dokumentach. Chodzi o to, aby w pełni wykorzystać dwie różne technologie.
Na przykład status, typ, powiązana osoba i data utworzenia byłyby wspólne dla wszystkich dokumentów i przechowywane w formacie sql, ale wiadomość e-mail i litera (oczywiście z różnymi polami) mogły być przechowywane na kanapie.
Następnie możemy wyświetlić naszą siatkę dokumentów dla wszystkich typów dokumentów (tysięcy dokumentów), które mogą być sprawdzane przez sql, ale wyświetlanie dokumentu pobiera dane z kanapy, gdy użytkownik chce ją wyświetlić.
Należy pamiętać, że niektóre typy dokumentów są generowane na podstawie szablonów, które również są dokumentami (pomyśl o scaleniu/znalezieniu i zastąpieniu korespondencji).
Warstwa aplikacji jest asp.net 4.5, C#, repozytorium wzór, Windsor dla MKOl, JavaScript
Więc na pytanie ...
Czy to podejście rozsądny sposób, aby większość z dwa różne paradygmaty przechowywania danych?
Czy sprawiamy, że nasze życie programistyczne jest niepotrzebnie skomplikowane w dążeniu do "użycia najbardziej odpowiedniej technologii do rozwiązania problemu"?
Czy ktoś ma jakieś doświadczenia z próbowaniem czegoś podobnego, a jeśli tak, to jak poszło?