2010-03-09 31 views
10

Cấu trúc dữ liệu phân cấp thường được lưu trữ trong cơ sở dữ liệu quan hệ. Loại lưu trữ này là linh hoạt nhưng bằng phẳng, vì vậy cấu trúc cây phải được xây dựng với mỗi truy vấn. Tôi muốn lưu trữ các bài đăng trên diễn đàn dưới dạng cấu trúc cây, nhưng có thể truy vấn hiệu quả, ví dụ như chọn bài đăng theo ngày hoặc tác giả.Làm thế nào để lưu trữ cấu trúc cây trong Java?

Tôi muốn có cơ sở dữ liệu nguồn mở có thể truy cập được từ Java.

Cách tốt nhất để làm như vậy là gì? CouchDB? neo4j? ...?

+1

Làm thế nào về ORM? –

+1

Một ORM sẽ làm cho việc xử lý thuận tiện hơn, nhưng cấu trúc dữ liệu cơ bản sẽ vẫn còn quan hệ và có lẽ hiệu suất sẽ không tốt như vậy. – deamon

+0

Xem thêm: [Các tùy chọn lưu trữ dữ liệu phân cấp trong cơ sở dữ liệu quan hệ là gì?] (Http://stackoverflow.com/questions/4048151/what-are-the-options-for-storing-hierarchical-data-in- cơ sở dữ liệu quan hệ) – cbare

Trả lời

7

Khi lần đầu tiên tôi gặp sự cố này, tôi đã tìm thấy bài viết tuyệt vời (link).

Nói cách tho: trong RDBMS thế giới có 2 chính lưu trữ mô hình cây cách tiếp cận:

  • Các danh sách kề Mẫu
  • Các Nested Set mẫu
+0

Bài viết chỉ có sẵn với đăng nhập oracle. – zellus

+0

Liên kết đã được cập nhật (tìm thấy cùng một bài viết ở một vị trí khác) –

+0

cảm ơn phản ứng nhanh. – zellus

4

Dưới đây là một great article trên Neo4j. Nói chung, có vẻ như neo4j là lựa chọn tốt nhất của bạn vì cơ sở dữ liệu tài liệu vẫn tương đối bằng phẳng và có thể dẫn đến một số awkward setup (vẫn có thể thực hiện được).

Neo4j, là một cơ sở dữ liệu đồ thị, phải phù hợp để lưu trữ cây cho bạn. Tôi đã không bao giờ sử dụng nó, nhưng cho miền vấn đề của bạn, nó có vẻ như là lựa chọn tốt nhất (ít nhất là một để điều tra đầu tiên).

Theo như "cách tốt nhất" là gì, tôi nghĩ điều đó phụ thuộc vào việc triển khai và yêu cầu của bạn. Tôi nghĩ bạn nên viết một bài kiểm tra đơn giản dựa vào cơ sở dữ liệu đồ thị, cơ sở dữ liệu tài liệu, object database và cơ sở dữ liệu quan hệ (hoặc không) và xem cơ sở dữ liệu nào phù hợp với vấn đề bạn đang cố giải quyết.

Các vấn đề liên quan