Tôi đang triển khai cổng web dựa trên sinatra/rails mà cuối cùng có thể có rất ít: nhiều mối quan hệ giữa các bảng/mô hình. Đây là một đội một người đàn ông và bán thời gian nhưng ứng dụng thế giới thực.Neo4j thay vì cơ sở dữ liệu quan hệ
Tôi đã thảo luận thực thể của mình với một người nào đó và được khuyên nên thử neo4j. Đến từ thế giới doanh nghiệp 'không gợi cảm' thực sự, khuynh hướng của tôi là sử dụng db quan hệ cho đến khi nó ngừng mở rộng hoặc trở thành cơn ác mộng vì sharding vv và sau đó nghĩ về bất cứ điều gì khác.
TUY NHIÊN,
- Tôi đang sử dụng postgres cho lần đầu tiên trong dự án này cùng với DataMapper và nó đưa tôi thời gian để bắt đầu rất nhanh
- Tôi chỉ cố gắng ra vài điều và xây dựng sử dụng hơn các trường hợp vì vậy tôi liên tục phải cập nhật lược đồ của mình (ý tưởng tạo mẫu và phản hồi từ bản beta). Tôi sẽ không phải làm điều này trong neo4j (ngoại trừ việc thay đổi các truy vấn của tôi)
- Dường như nó rất dễ dàng để thiết lập tìm kiếm bằng cách sử dụng neo4j. Nhưng Postgres cũng có thể thực hiện tìm kiếm toàn văn.
- Postgres gần đây đã công bố hỗ trợ cho json và javascript. Tự hỏi nếu tôi chỉ nên gắn bó với PG và đầu tư thêm thời gian học PG (trong đó có một cộng đồng tốt) thay vì neo4j.
Tìm kiếm các giai đoạn nơi neo4j tốt hơn, đặc biệt là ở giai đoạn protyping/ban đầu của dự án. Tôi hiểu rằng nếu trang web phát triển, tôi có thể có nhiều công nghệ liên tục như s3, quan hệ (PG), mongo, v.v.
Ngoài ra, bạn cũng nên biết cách hoạt động với hệ sinh thái Rails/Ruby.
Update1:
tôi nhận được rất nhiều câu trả lời tốt và có vẻ như là điều phải làm là gắn bó với Postgres cho bây giờ (đặc biệt là kể từ khi tôi triển khai đến Heroku)
Tuy nhiên, ý tưởng về là giản đồ ít hấp dẫn hơn. Về cơ bản, tôi đang nghĩ đến cách tiếp cận mà bạn không định nghĩa một datamodel cho đến khi bạn nói 100-150 người dùng và bạn đã tìm ra một lược đồ tốt (trường hợp sử dụng nghiệp vụ) cho sản phẩm của mình, trong khi bạn chỉ giới thiệu khái niệm và nhận phản hồi với các đăng ký giới hạn. Sau đó, người ta có thể quyết định một lược đồ và bắt đầu với quan hệ.
Sẽ được tốt đẹp để biết nếu có dễ sử dụng schema/tùy chọn bền bỉ ít (dựa trên một cách dễ dàng để sử dụng/cài đặt cho người dùng mới) mà có thể từ bỏ nói rộng, vv
Chia tỷ lệ và phân tích không phải là lý do chính tôi chọn cơ sở dữ liệu biểu đồ. Bạn có thể cung cấp thêm thông tin về miền của mình không? Bạn đang mô hình hóa cái gì đó là một mạng? Bạn có cần tính toán bất kỳ thống kê mạng nào hoặc chạy bất kỳ thuật toán đồ thị nào không? Sự hiện diện của nhiều bảng nhiều đến nhiều có thể biểu thị một mạng, vì bạn có thể xem xét các mối quan hệ này là các cạnh. Các cạnh của bạn đại diện cho điều gì? –