2009-10-04 23 views
8

Tôi đang tạo một ứng dụng nhỏ asp.net mvc. trong đó tôi phải tính toán dữ liệu từ một số tệp tin CSV (từ 5 đến 10 tệp).Cách tốt nhất để lưu trữ tệp văn bản vào cơ sở dữ liệu Sql Server, cho ứng dụng web asp.net mvc là gì?

Ứng dụng phải cung cấp các hành động tải lên và tải xuống cho các tệp này.

Phần mà tôi không có kinh nghiệm là cơ sở dữ liệu. Tôi nên sử dụng loại cột nào? văn bản, hình ảnh, nhị phân? kích thước của một tệp sẽ là betweent 80KB đến 500KB

+0

Bạn đang thực sự lưu toàn bộ tệp dưới dạng thực thể trong cơ sở dữ liệu hay bạn chỉ muốn tải lên dữ liệu trong tệp csv trong bảng? – flayto

+0

Tôi muốn lưu tệp dưới dạng thực thể. – andreiursan

Trả lời

11

Các loại TEXT, NTEXTIMAGE đã lỗi thời - không sử dụng chúng để phát triển mới. Chúng sẽ bị xóa khỏi phiên bản SQL Server trong tương lai.

Đối với SQL Server 2005 trở lên, hãy sử dụng VARCHAR(MAX)/NVARCHAR(MAX) nếu bạn đang xử lý tệp văn bản thuần túy (như mã nguồn hoặc tệp CSV) hoặc VARBINARY(MAX) nếu bạn đang xử lý tệp nhị phân.

Chúng cho phép tối đa 2 GB bộ nhớ cho mỗi tệp và bạn có thể sử dụng tất cả các hàm chuỗi T-SQL thông thường để thao tác chúng (trường (V) VARCHAR (MAX)).

Nếu bạn đang sử dụng SQL Server 2008, cũng có một tùy chọn bổ sung - thuộc tính FILESTREAM trên các cột VARBINARY(MAX). Điều này cho phép bạn lưu trữ các tệp trong hệ thống tệp của máy chủ SQL Server (thay vì các bảng cơ sở dữ liệu) trong khi vẫn giữ nguyên toàn vẹn giao dịch và dữ liệu.

FILESTREAM được khuyến nghị cho các tệp thông thường và thường lớn hơn 1 MB hoặc nếu bạn cần nhiều hơn 2 GB (vì bạn không thể lưu trữ hơn 2 GB trong cột VARBINARY(MAX) thông thường).

Marc

+2

Đề cập đến không có loại FILESTREAM giới hạn nào cho tính đầy đủ. – whatnick

+0

Cảm ơn tất cả các bạn! Giải quyết, tôi đoán tôi sẽ sử dụng FILESTREAM. – andreiursan

Các vấn đề liên quan