Vị trí đầu tiên mà thông tin đó shoiuld là cơ sở dữ liệu ... hoặc bất kỳ "cửa hàng ảo" nào chẳng hạn như dịch vụ web cung cấp giao diện cho bạn db. Trong thực tế, nếu có các entiies db khác sử dụng các giá trị này thì PHẢI được thể hiện trong cơ sở dữ liệu, nếu không bạn sẽ gặp phải những rắc rối lớn. Trong thực tế, giả sử một trong các giá trị như vậy là một chuỗi .... nếu bạn không định nghĩa một bảng chứa tất cả các giá trị có thể có + một khóa và chỉ cần viết chuỗi như trong các bảng khác ... nó sẽ không thể cho bạn để thay đổi định dạng của chuỗi vì nó sẽ "lan truyền" trên db của bạn ... Ngược lại, nếu bạn chỉ sử dụng khóa ngoài để tham chiếu đến chuỗi đó ... bạn có thể dễ dàng thay đổi chúng vì chuỗi được lưu trữ chỉ trong ONE chỗ trong db của bạn. Ngoài ra giải pháp liệt kê cũng gặp phải vấn đề mà bạn không thể thêm hoặc xóa các giá trị ... vì vậy nếu các hoạt động như vậy "khái niệm" có thể có ý nghĩa bạn không thể sử dụng một điều tra. Bạn có thể sử dụng liệt kê khi tất cả các tùy chọn "khái niệm span" tất cả các khả năng, vì vậy bạn chắc chắn bạn sẽ không bao giờ thêm/xóa các tùy chọn khác, chẳng hạn như trong trường hợp liệt kê (có, không, không xác định).
Điều đó nói rằng, khi bạn có các tùy chọn trong db, phần còn lại rất dễ ... bạn sẽ có các thực thể DTO hoặc các thực thể nghiệp vụ đại diện cho chúng giống hệt cách bạn làm cho tất cả các thực thể DB khác.
Vì mục đích hiển thị, bạn có thể có phiên bản ViewModel của tùy chọn này có thể chứa khóa và mô tả và "Phương thức lưu trữ" mà trình điều khiển của bạn có thể gọi để có danh sách tất cả các tùy chọn.
Sau khi truy xuất các bộ điều khiển, hãy đặt chúng trong ViewViewModel trang tổng thể ... cùng với tất cả các thông tin khác sẽ được hiển thị trên trang. Từ ViewModel ... bạn có thể truy cập chúng để đặt chúng trong danh sách thả xuống.
Tổng hợp: 1) Bạn cần có đại diện DB tùy chọn 2) Sau đó, bạn sẽ có DTO, lớp nghiệp vụ và phiên bản Xem của thực thể này ... khi cần, chính xác như đối với tất cả các thực thể DB khác.
Nguồn
2012-03-22 10:33:30
Xin chào, tôi không chắc chắn nếu bạn đã bỏ lỡ những gì tôi đang tìm kiếm? Đây là câu hỏi thêm về cách lưu trữ các tùy chọn cho một hộp thả xuống, không phải về cách sử dụng các kiểu xem và bộ điều khiển? Tôi ổn với những thứ đó? Làm thế nào để bạn lưu trữ các tùy chọn cho trình đơn thả xuống, nếu chúng không được định nghĩa trong db sẽ được mở rộng trong thời gian chạy? Ví dụ: sử dụng các mức vai trò tôi không muốn lưu trữ trong DB. –
Trừ khi tôi đang xây dựng một ứng dụng cho phép vai trò tùy chỉnh của khóa học;) –