2009-10-04 9 views
8

Tworzę małą aplikację mvc asp.net. w którym muszę obliczyć dane z kilku plików CSV (od 5 do 10 plików).Jaki jest najlepszy sposób przechowywania plików tekstowych do bazy danych serwera SQL, dla aplikacji sieci web asp.net mvc?

Aplikacja musi udostępniać i pobierać akcje dla tych plików.

Częścią, w której nie mam doświadczenia, jest baza danych. Jakiego typu kolumny mam użyć? tekst, obraz, binarny? rozmiar pliku będzie betweent 80kb do 500KB

+0

Czy rzeczywiście próbuje zapisać cały plik jako podmiotu w bazie danych, czy też po prostu chcesz przesłać dane w pliku csv w tabeli? – flayto

+0

Chcę przechowywać plik jako encję. – andreiursan

Odpowiedz

11

typów TEXT, NTEXT i IMAGE są przestarzałe - nie używać ich do nowego rozwoju. Zostaną one na dobre usunięte z przyszłej wersji SQL Server.

W przypadku SQL Server 2005 i nowszych wersji należy użyć VARCHAR(MAX)/NVARCHAR(MAX), jeśli mamy do czynienia z plikami czysto tekstowymi (takimi jak kod źródłowy lub pliki CSV) lub VARBINARY(MAX), jeśli mamy do czynienia z plikami binarnymi.

Umożliwiają one do 2 GB pamięci dla każdego pojedynczego pliku i można używać na nich wszystkich standardowych funkcji łańcuchów T-SQL (do (N) pól VARCHAR (MAX), to znaczy).

Jeśli używasz programu SQL Server 2008, dostępna jest również dodatkowa opcja - atrybut FILESTREAM w kolumnach VARBINARY(MAX). Umożliwia to przechowywanie plików w systemie plików maszyny SQL Server (zamiast tabel bazy danych) przy zachowaniu integralności transakcji i danych.

FILESTREAM jest zalecany do plików, które mają zazwyczaj rozmiar większy niż 1 MB lub jeśli potrzebujesz więcej niż 2 GB (ponieważ nie możesz przechowywać więcej niż 2 GB w zwykłej kolumnie VARBINARY(MAX)).

Marc

+2

Wymienić nieograniczone typy FILESTREAM również dla kompletności. – whatnick

+0

Dziękuję wszystkim! Rozwiązane, myślę, że będę używać FILESTREAM. – andreiursan

Powiązane problemy