2015-04-20 11 views
13

Rozwijamy witrynę e-commerce z wykorzystaniem serwera Asp.net i Sql. Klient może przeglądać i zamawiać szeroką gamę przełączników i opraw oświetleniowych.Jaki typ danych jest najlepszy do zapisywania obrazów w bazie danych?

Ponieważ musimy wyświetlać obrazy tych produktów dla każdej kategorii, liczba obrazów, które potrzebujemy, może wzrosnąć do ponad 500. Jesteśmy nieco zdezorientowani tym, czy powinniśmy zapisać te obrazy jako typ Obrazu w SQL, czy też lepiej przechowywać ścieżkę obrazu. W tym drugim przypadku lepiej jest przechowywać wszystkie obrazy w jednym folderze?

Proszę doradzić w sprawie najlepszego sposobu działania.

+5

[przechowywanie-obrazy-w-db-yea-or-nay] (https://stackoverflow.com/questions/3748/) –

+3

http://research.microsoft.com/apps/pubs/default.aspx ? id = 64525 (btw: 'image' jako typ danych jest przestarzały, powinieneś użyć' varbinary (max) ') –

+0

Chociaż możesz zapisać obrazy w bazie danych, ale spróbuj zapisać tylko plik obrazu (lub inny plik) nazwę i ścieżkę w bazie danych i zapisać odpowiedni plik w folderze aplikacji lub innym określonym folderze na serwerze. Dziękuję Ci. – BAdmin

Odpowiedz

10

Typ danych image nie ma nic wspólnego z obrazami. Nie wiem, dlaczego istnieje. To jest dziedzictwo.

Przechowuj obrazy tak, jakbyś przechowywał każdy inny obiekt typu blob: varbinary(max).

The issue whether to store blobs in the database at all has been discussed before. Pamiętaj, że odpowiedzi tam są bardzo pozytywne i subiektywne. Jest oczywiste, że nie należy twierdzić, że należy zawsze przechowywać bloby na zewnątrz bazy danych.

2

Proponuję zapisać adresy URL obrazów w bazie danych, w zależności od identyfikatora produktu. Ale jeśli żądasz do 500 adresów URL na raz, sugerowałbym może wprowadzenie CDN w środku, aby buforować adresy URL obrazów. Będzie miało duży wpływ na wydajność

5

Można skorzystać z poniższych typów danych dla BLOB na serwerze SQL:

Binary: fixed wielkości do 8000 bajtów.

VarBinary(n): Zmienna wielkość do 8000 bajtów (n określa maksymalny rozmiar).

VarBinary(max): Zmienny rozmiar, limit 2 GB.

What Is a BLOB?

+0

@srutzky to ograniczenie jest ustalone w serwerze sql 2016 –

1

Zapisywanie obrazu do folderu i ścieżka tego pliku na serwerze SQL jest dobrym pomysłem. Ale może spowodować tę samą nazwę pliku i zastąpić go. tak zapisane z timestamp. Myślę, że to pomoże ci inaczej zrobić inny sposób, który zapisuje do Image Datatype serwera sql.

Aby zapisać dane do serwera SQL Obrazek dataType Śledź Guildline na poniższy link

Go to Link

0

pomyślmy o tym. Jeśli przechowujesz w polu blob, upewnij się, że utworzysz oddzielną grupę plików dla tych danych. Jeśli zdecydujesz się zapisać jako ścieżkę. Użyj strumienia plików. Baza danych będzie zarządzać ścieżką. Będzie przetwarzany w transakcjach. Zostanie wykonana kopia zapasowa z bazą danych.