Thời gian để tẩy não bằng RDBMS. :)
Một trong những điểm lớn nhất trong thiết kế lược đồ của couchdb là trực tiếp nhằm ngăn ngừa sự cần thiết phải di chuyển. Biểu diễn JSON của các đối tượng giúp bạn dễ dàng gõ vịt các đối tượng của mình.
Ví dụ: với điều kiện là bạn có ứng dụng web loại blog có bài đăng và bất kỳ thứ gì lạ mắt mà mọi người lưu trữ trong blog. Tài liệu bài của bạn có các trường như tác giả, tiêu đề, được tạo tại, v.v. Bây giờ bạn đến và tự nghĩ, "Tôi nên theo dõi giai đoạn nào của mặt trăng khi tôi xuất bản bài đăng của mình ..." bạn chỉ có thể bắt đầu thêm moon_phase thuộc tính cho bài đăng mới.
Nếu bạn muốn hoàn thành, bạn sẽ quay lại và thêm moon_phase vào các bài đăng cũ, nhưng điều đó không thực sự cần thiết.
Trong chế độ xem của bạn, bạn có thể truy cập moon_phase làm thuộc tính. Và nó sẽ là vô giá trị hoặc gây ra một ngoại lệ hoặc một cái gì đó. (Không phải chuyên gia JS, tôi nghĩ rằng null là câu trả lời đúng)
Thing là, nó không thực sự quan trọng. Nếu bạn cảm thấy muốn thay đổi thứ gì đó, hãy thay đổi nó. Mặc dù đảm bảo rằng lượt xem của bạn hiểu được sự thay đổi đó. Mà trong kinh nghiệm của tôi không thực sự đòi hỏi nhiều.
Ngoài ra, nếu bạn đang thực sự hoang tưởng, bạn có thể lưu trữ một thuộc tính phiên bản/loại, như trong:
{
_id: "foo-post",
_rev: "23490AD",
type: "post",
typevers: 0,
moon_phase: "full"
}
Hy vọng rằng sẽ giúp.
Nguồn
2008-09-26 18:19:22
Có vẻ như activecouch hiện đã có trên GitHub - http://github.com/arunthampi/activecouch/tree/master – Evan