Tôi đang phát triển một ứng dụng cho Google App Engine sử dụng BigTable cho kho dữ liệu của nó.Cấu trúc cây trong cơ sở dữ liệu nosql
Đây là một ứng dụng về cách viết truyện một cách cộng tác. Đó là một dự án sở thích rất đơn giản mà tôi đang làm việc chỉ để giải trí. Đó là mã nguồn mở và bạn có thể thấy nó ở đây: http://story.multifarce.com/
Ý tưởng là bất cứ ai cũng có thể viết một đoạn văn, sau đó cần được xác thực bởi hai người khác. Một câu chuyện cũng có thể được phân nhánh tại bất kỳ đoạn văn nào, để một phiên bản khác của câu chuyện có thể tiếp tục theo một hướng khác.
Hãy tưởng tượng cấu trúc cây sau:
Mỗi số sẽ là một đoạn văn. Tôi muốn có thể chọn tất cả các đoạn trong mỗi câu chuyện độc đáo. Về cơ bản, những câu chuyện độc đáo đó là (2, 7, 2); (2, 7, 6, 5); (2, 7, 6, 11) và (2, 5, 9, 4). Bỏ qua rằng nút "2" xuất hiện hai lần, tôi chỉ lấy một sơ đồ cấu trúc cây từ Wikipedia.
Tôi cũng làm một sơ đồ của một giải pháp đề xuất: https://docs.google.com/drawings/edit?id=1fdUISIjGVBvIKMSCjtE4xFNZxiE08AoqvJSLQbxN6pc&hl=en
Làm thế nào tôi có thể thiết lập một cấu trúc là hiệu suất hiệu quả cho cả văn bản, nhưng quan trọng nhất cho việc đọc?
Yup, tôi đã chọn không sử dụng danh sách kề (chi phí đọc quá cao) hoặc bộ lồng nhau (chi phí ghi quá cao). Giải pháp của bạn có vẻ tốt. Tôi đoán tôi sợ giữ một danh sách 200 chìa khóa trên một thực thể, nhưng đó không phải là một vấn đề, tôi đoán vậy. Tôi thực sự đã đi trước và thực hiện giải pháp của tôi và nó hoạt động tốt quá không có vấn đề hiệu suất, vì vậy tôi có thể sẽ sử dụng nó trong một thời gian và xem nếu nó có ý nghĩa hơn để đi qua để giải pháp của bạn. – Blixt
Thanx để giải thích, nó rất hữu ích. –