Sposób projektowania schematu przechowywania bazy danych jest subiektywny, ale w scenariuszu należy wziąć pod uwagę następujące czynniki: Obiektyw. Zajmę się nimi i pozostawiam ci "co powinienem wybrać" ...
Bloby Azure Storage są przeznaczone do masowych "bloków" danych (takich jak dokumenty, obrazy itp.). Coś jak Baza danych SQL jest zaprojektowana dla metadanych (rzeczy, które wyszukujesz/indeksujesz/zapytania).
Wszystko można zrobić za pomocą bazy danych SQL, a użytkownik musiałby jedynie martwić się zapytaniami SQL (i wygląda na to, że jest to coś, co już jest wam znane). Serwer SQL (i baza danych SQL) zawsze miał możliwość przechowywania treści binarnych za pośrednictwem typu BLOB.
Podczas gdy można przechowywać obrazy w bazie danych SQL, można zauważyć, że rozmiar bazy danych znacznie się zwiększa, a tylko przechowywanie metadanych, które można przetworzyć. I podczas gdy usługa SQL Database pozwala na skalowanie pamięci masowej, znajdziesz większą skalę w pamięci typu blob (do 500TB) przy niższym koszcie niż usługa bazy danych SQL. Jeśli uruchomisz program SQL Server w maszynie wirtualnej, nadal będziesz miał koszt pamięci masowej (dyski dołączone) równoważny z obiektami typu blob wraz z kosztami maszyny wirtualnej.
Same obiekty pamięci masowej nie udostępniają języka zapytań - należy znać nazwę kontenera i/lub kropli. Tak więc, aby uzyskać optymalne wyszukiwanie, będziesz potrzebował bazy danych z zapytaniami z metadanymi (np. Baza danych SQL).
Jeśli przechowujesz swoje obrazy w obiektach typu blob i odsyłasz je za pomocą identyfikatora URI do bazy danych, będziesz mógł przesłać zapytanie do bazy danych, znaleźć identyfikator URI obrazu, a następnie odpowiednio odczytać z magazynu blob.
Uwaga: w przypadku bloków BLOB możesz zapewnić bezpośredni dostęp do URI obrazu, np. Do przeglądarki lub aplikacji (nawet jeśli kropelka jest oznaczona jako prywatna), co pozwala następnie ominąć warstwę aplikacji dostarczając zawartość binarną (obrazkową) do użytkownika końcowego. Bloby mogą być również buforowane w CDN, czego nie można zrobić z bazą danych SQL.
Który wybierzesz zależy ostatecznie od Ciebie; Po prostu podałem obiektywne powody używania każdego z nich.
Nie wiem zbyt wiele o Azure dla hostingu, obrazy w bazach danych mogą być interesującym tematem. Utrzymanie referencyjnej integralności przechowywanie ich w DB jest ładne, ale wzdęcie rozmiaru DB z nimi nie jest również świetne. Myślisz, czy zamierzasz używać również lazurowych baz danych? Jeśli tak, moim założeniem byłoby to, że przechowywanie byłoby tańsze hostowanie ich w pamięci masowej Azure Blob zamiast płacenia za większe zasoby DB, ale to jest wyłącznie założenie ... – Matt
Dzięki Matt, dobre punkty. Tak też będzie korzystać z Azure DB - a blob jest o wiele tańszy ... :) – Nik
cóż, domyślam się, że sprowadza się to do tego, że jeśli wydajność jest do przyjęcia i przepraszam, ale nie mogę tego zważyć, ponieważ nie używam lazuru . Pozdrawiam – Matt