2009-10-04 8 views
8

Küçük bir asp.net mvc uygulaması yapıyorum. Birçok CSV dosyasından veri toplamak zorunda olduğum (5 ila 10 dosya arasında).Metin dosyalarını bir asp.net mvc web uygulaması için Sql Server veri tabanına depolamanın en iyi yolu hangisidir?

Uygulama, bu dosyalar için karşıya yükleme ve indirme eylemleri sağlamalıdır.

Tecrübem olmadığı kısım veri tabanıdır. Hangi sütun tipini kullanmalıyım? metin, resim, ikili? Bir dosyanın boyutu 80KB - 500KB arası

+0

aslında veritabanında bir varlık olarak tüm dosyayı saklamak için çalışıyor, ya da sadece bir tabloda CSV dosyası içinde veri yüklemek istediğiniz yapacak mısın? – flayto

+0

Dosyayı bir varlık olarak saklamak istiyorum. – andreiursan

cevap

11

TEXT, NTEXT ve IMAGE türleri geçersizdir - yeni geliştirme için bunları kullanmayın. Gelecek için iyi bir SQL Server sürümünden kaldırılacaklar.

SQL Server 2005 ve üstü için, saf metin dosyaları (kaynak kodu veya CSV dosyaları gibi) ile çalışıyorsanız veya VARBINARY(MAX) ikili dosyalar ile uğraşıyorsanız, VARCHAR(MAX)/NVARCHAR(MAX) kullanın.

Bunlar, her bir dosya için 2 GB'a kadar depolama alanına izin verir ve bunları işlemek için tüm normal T-SQL dize işlevlerini kullanabilirsiniz ((N) VARCHAR (MAX) alanları, yani).

SQL Server 2008 kullanıyorsanız, özniteliğinin VARBINARY(MAX) sütunlarında ek bir seçeneği de vardır. Bu, işlem ve veri bütünlüğünü korurken dosyaları SQL Server makinesinin dosya sisteminde (veritabanı tabloları yerine) depolamanıza olanak tanır.

FILESTREAM, genellikle ve genellikle 1 MB'den büyük boyutlu dosyalar için veya 2 GB'den daha fazlasına ihtiyacınız varsa (normalde VARBINARY(MAX) sütununda 2 GB'den daha fazla depolayamayacağınız için) önerilir.

Marc

+2

Sınırsızlık FILESTREAM hiçbir şekilde eksiksiz değildir. – whatnick

+0

Hepinize teşekkürler! Çözüldü, FILESTREAM kullanacağım sanırım. – andreiursan