2011-07-20 7 views
5

Tôi đang xây dựng một hệ thống xuất bản giống như blog trên ASP.NET 4.0 (với EF 4.0) mà tôi muốn là rất dễ dàng triển khai/sao lưu tại địa chỉ đầu tiên. Tôi đang ở một điểm quyết định của việc làm cho hệ thống để tạo ra một cơ sở dữ liệu trong một máy chủ SQL và sử dụng (theo truyền thống), hoặc có một tập tin App_Data MDF trong trang web và chỉ đính kèm với một trong đó với SQL Express. Tôi biết giới hạn bộ nhớ/kích thước của phiên bản Express và tôi sẽ không đạt đến giới hạn vì đây là không một ứng dụng kinh doanh quan trọng về hiệu suất hoặc bất kỳ nội dung nghiêm trọng nào. Chỉ cần một CMS đơn giản với các blog/tác phẩm/ảnh (ảnh thực tế KHÔNG được lưu trong cơ sở dữ liệu, chỉ đường dẫn của chúng được lưu trong MDF) và đó là nó. Tôi thấy không có vấn đề bằng cách sử dụng MDF, nhưng tôi không phải là một chuyên gia về chủ đề quá như tôi đã không bao giờ làm việc/tạo ra một trang web bằng cách sử dụng MDF tập tin. Tôi luôn triển khai trên SQL Server, nhưng tôi không muốn đối phó với người dùng/vai trò/quyền và điều cuối cùng mà tôi muốn có một người dùng có vấn đề cài đặt do cài đặt cơ sở dữ liệu.Tôi có nên đi kèm với tập tin MDF để SQL Express hoặc một kịch bản triển khai thực sự cho SQL Server?

Tôi nên làm gì? Bất kỳ vấn đề mà tôi sẽ phải đối mặt với MDF? Khuyến nghị?

Trả lời

2

NẾU bạn sử dụng SQL Server Express - mà là một máy chủ - Tôi sẽ luôn lựa chọn một cách tiếp cận cơ sở dữ liệu "thật": đính kèm cơ sở dữ liệu của bạn đến máy chủ, truy cập nó bằng tên cơ sở dữ liệu của mình, triển khai tập lệnh SQL để Cập nhật nó.

That "đính kèm DB từ đường dẫn tập tin" luôn luôn có vẻ giống như một kludge nửa nướng và khá lộn xộn với tôi .....

Nếu bạn không cần phải là loại điện - điều tra SQL Server Compact Edition mà là một chỉ một tệp, trong cơ sở dữ liệu trong quá trình. Nó có những hạn chế của nó - không có các thủ tục lưu sẵn, không hỗ trợ các kiểu dữ liệu nhất định như VARCHAR(MAX) hoặc XML - nhưng đối với kịch bản dễ dàng hơn, nó hoàn hảo và dễ sử dụng - chỉ triển khai nó dọc theo ứng dụng của bạn. Đó là một người dùng, ví dụ: bạn không chia sẻ dữ liệu giữa nhiều khách hàng, đó là cửa hàng địa phương cho mỗi người dùng/ứng dụng trên

+0

của riêng mình trước hết, Compact Edition không phù hợp .. Có vẻ hơi khó chịu và tôi không nghĩ rằng sẽ chơi tốt với EF. Tôi hiểu cách bạn cảm nhận về Express Edition và phần "đính kèm DB", nhưng nó chỉ làm cho ứng dụng của tôi di động hơn, ví dụ trong khi di chuyển hệ thống, người ta chỉ sao chép tất cả các tệp và đó là nó. Không có thiết lập bên ngoài hoặc sao lưu hoặc bất cứ điều gì. Đó là những gì tôi thực sự muốn (giống như ASP.NET web.config tập tin, họ đang ở trong thư mục trang web và có tất cả các thiết lập của trang web). Tôi tò mò về một số trường hợp không lường trước được khi sử dụng phương thức Express/attach, nếu có. –

+0

@can poyrazoglu: tốt, bạn đã hỏi ý kiến ​​- đây là của tôi. BTW: SQL Server Compact 4.0 chắc chắn ** KHÔNG ** crappy, bạn không bao giờ giải thích tại sao nó "không phù hợp", và nó chơi rất tốt với EF 4.0 –

+0

Tôi tôn trọng (và xem xét) bạn cho rằng nó không phải là xúc phạm hoặc bất cứ điều gì (mặc dù nó có thể âm thanh theo cách đó - tôi đồng ý). Hầu như ở khắp mọi nơi trên mạng tôi đọc Express đang thay thế CE, không sử dụng CE và tiếp tục với Express. Đó là lý do tôi nói vậy. Nó cũng có một định dạng khác và không phải mọi thứ đều được hỗ trợ, và mặc dù tôi có thể không cần các hoạt động không được cung cấp ngay bây giờ, tôi có thể cần chúng trong tương lai và sẽ khó thay đổi mọi thứ. Bottomline: Tôi muốn sử dụng SQL Server hoặc SQL Server Express, nhưng không phải CE, vì những lý do mà tôi đã nói. –