Sto implementando un portale web basato su sinatra/rails che potrebbe eventualmente avere pochi: molte relazioni tra tabelle/modelli. Si tratta di un team one-man e part-time ma app del mondo reale.Neo4j invece del database relazionale
Ho discusso la mia entità con qualcuno e mi è stato consigliato di provare neo4j. Provenendo da un mondo imprenditoriale "non sexy", la mia inclinazione è quella di usare il db relazionale fino a quando non smette di ridimensionare o diventa un incubo a causa della condivisione, ecc. E poi penso a qualsiasi altra cosa.
TUTTAVIA,
- Sto usando Postgres per la prima volta in questo progetto insieme a DataMapper e la sua mi prendere tempo per iniziare molto veloce
- sto solo provando alcune cose e la costruzione di un uso più casi quindi devo aggiornare costantemente il mio schema (idea di prototipazione e feedback dalla versione beta). Non dovrò farlo in neo4j (eccetto cambiare le mie richieste)
- Sembra essere molto facile da configurare la ricerca usando neo4j. Ma Postgres può anche effettuare ricerche di testo completo.
- Postgres ha recentemente annunciato il supporto per json e javascript. Mi chiedo se dovrei limitarmi a usare PG e investire più tempo nell'apprendimento del PG (che ha una buona comunità) invece neo4j.
Ricerca di casi in cui neo4j è migliore, soprattutto in fase di prototipazione/iniziale di un progetto. Capisco che se il sito cresce, potrei finire per avere più tecnologie persistenti come s3, relazionale (PG), mongo ecc.
Inoltre sarebbe bene sapere come si gioca con l'ecosistema Rails/Ruby.
Update1:
ho avuto un sacco di buone risposte e sembra che la cosa giusta da fare è attaccare con Postgres per ora (soprattutto da quando schiero a Heroku)
Tuttavia l'idea di essere senza schema è allettante. Fondamentalmente sto pensando ad un approccio in cui non si definisce un datamodel fino a quando non si dicono 100-150 utenti e si è capito un buon schema (casi d'uso aziendali) per il proprio prodotto, mentre si sta solo dimostrando il concetto e ottenendo feedback con iscrizioni limitate. Quindi si può decidere uno schema e iniziare con relazionale.
sarebbe bello sapere se ci sono facili da usare meno l'opzione di persistenza schema/(basato sulla facilità di utilizzare/setup per nuovo utente) che potrebbero rinunciare a dire il ridimensionamento ecc
Il ridimensionamento e il sharding non sono i motivi principali per cui sceglierei un database grafico. Puoi fornire ulteriori informazioni sul tuo dominio? Stai modellando qualcosa che è una rete? Dovrai calcolare statistiche di rete o eseguire algoritmi di grafici? La presenza di numerose tabelle many-to-many può indicare una rete, in quanto è possibile considerare tali relazioni come spigoli. Cosa rappresentano i tuoi bordi? –