Tôi có một công cụ nhỏ mà tôi đang thiết kế sẽ yêu cầu một tệp cấu hình nào đó. Tệp cấu hình trong trường hợp của tôi thực sự là một cơ sở dữ liệu, nhưng nó cần phải gọn nhẹ và nếu cần, người dùng cuối sẽ dễ dàng chỉnh sửa nó. Tuy nhiên, nó cũng sẽ chứa rất nhiều thứ trong đó. (tùy thuộc vào các yếu tố nhất định, có thể là 1Mb trở lên)
Tôi đã quyết định tôi muốn sử dụng văn bản ol 'đơn giản hơn là cố gắng sử dụng SQLite hoặc một số thứ khác. Tuy nhiên, với việc sử dụng văn bản, tôi cũng phải đối phó với sự đa dạng của các định dạng. Cho đến nay, lựa chọn của tôi là
- XML
- JSON
- Định dạng tùy chỉnh
Dữ liệu trong tệp của tôi khá đơn giản bao gồm hầu hết các phần của loại khóa-giá trị. Vì vậy, một định dạng tùy chỉnh sẽ không khó lắm ... nhưng tôi không phải lo lắng về việc viết hỗ trợ cho nó. Tôi chưa bao giờ thấy JSON được sử dụng cho các tệp cấu hình. Và XML sẽ làm tăng kích thước tệp đáng kể tôi nghĩ. (Tôi cũng không thích XML nói chung).
Tôi nên làm gì trong trường hợp này?
Các yếu tố cần xem xét:
- Tập tin cấu hình này có thể được tải lên một dịch vụ web (vì vậy vấn đề kích thước)
- Người dùng phải có thể chỉnh sửa bằng tay nếu cần thiết (dễ dàng chỉnh sửa và đọc các vấn đề)
- Phải có khả năng tạo và xử lý tự động (tốc độ không thành vấn đề, nhưng không quá chậm)
- "Khóa" và "giá trị" là các chuỗi đơn giản, nhưng phải được thoát vì chúng có thể chứa bất cứ thứ gì. (unicode và thoát phải hoạt động dễ dàng)
- Nhiều tập tin cấu hình. Về cơ bản, mỗi tệp cấu hình được gắn với một "dự án"
and if needed the end-user should find it easily editable. However, it also will contain a lot of things in it. (depending on certain factors, could be 1Mb or more)
. Bạn không thể có bánh của bạn và ăn nó. Các tệp 1MB theo định nghĩa không dễ chỉnh sửa. Đó là một cơ sở dữ liệu (ngay cả khi nhỏ), và sau đó SQL-lite là một tùy chọn tốt hoặc đó là tệp cấu hình (bạn không nên có 1MB cấu hình).