Tôi đang tạo một wiki cộng đồng này, vì tôi sẽ đánh giá cao cách tiếp cận của mọi người và không nhất thiết là câu trả lời.Enums hoặc Tables?
Tôi đang ở trong tình huống mà tôi có nhiều trường dữ liệu kiểu tra cứu, không thay đổi. Một ví dụ sẽ là:
hàng năm Mức lương
Tùy chọn: 0 - 25K
Tùy chọn: 25K - 100K
Tùy chọn: 100K +
Tôi muốn có các tùy chọn dễ dàng có sẵn thông qua một enum, nhưng cũng muốn các giá trị văn bản có sẵn trong DB, như tôi sẽ làm báo cáo về các giá trị văn bản và không phải là một ID. Ngoài ra, vì chúng tĩnh nên tôi không muốn thực hiện cuộc gọi đến DB.
Tôi đã suy nghĩ sao chép điều này trong một cái bàn và cái bàn, nhưng muốn nghe một số suy nghĩ thay thế.
Cảm ơn
Đó là một ví dụ, nó sẽ không thay đổi. Tôi thích cách tiếp cận của bạn, làm thế nào bạn sẽ tồn tại dữ liệu trong suốt ứng dụng. Sẽ có bất kỳ vấn đề hiệu suất nào là dữ liệu không cần thiết cho 99% ứng dụng? –
Nếu dữ liệu này hiếm khi được truy cập, bạn chỉ có thể giữ nó trong một lớp tĩnh được khởi tạo lần đầu tiên bạn yêu cầu dữ liệu (khởi tạo lười). Chỉ cần đảm bảo rằng các khóa được đặt đúng chỗ để chỉ một luồng có thể truy cập dữ liệu đó tại một thời điểm. Điều này sẽ loại bỏ bất kỳ sự khởi động chậm chạp nào. Nếu bạn không muốn đợi lần đầu tiên truy cập dữ liệu, bạn cũng có thể thêm tải dữ liệu vào hàng đợi công việc có mức độ ưu tiên thấp để được tải khi không hoạt động trong một hoặc hai khoảnh khắc (hoặc được tải ngay nếu cần) – Eclipse
Nếu nó thực sự không thay đổi và bạn không có cơ sở dữ liệu, bạn có thể lưu trữ nó trong tệp app.config trong phần tùy chỉnh. –