I read this: http://docs.ehealthafrica.org/couchdb-best-practices/#one-to-n-relations
Is this how I'm supposed to use CouchDB? Because isn't this relational? I think that if I'm pushing CouchDB to be like PostgreSQL, then maybe I'm doing it wrong and I should either use PostgreSQL idiomatically or CouchDB idiomatically. On Sat, Jun 13, 2015 at 11:37 AM, Johannes Jörg Schmidt < [email protected]> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > Please read the sections "One To N Relations" [1], "N To N Relations" > [2] and "Linked Documents" [3] from CouchDB Best Practices. > > tl;dr you can and should link documents. > > [1]: > http://docs.ehealthafrica.org/couchdb-best-practices/#one-to-n-relations > [2]: > http://docs.ehealthafrica.org/couchdb-best-practices/#n-to-n-relations > [3]: > http://docs.ehealthafrica.org/couchdb-best-practices/#linked-documents > > On 13.06.2015 10:13, Ram Rachum wrote: > > Question: If it's schemaless, what do you do for foreign keys? > > Whenever I design a project, there's tons of foreign key. You have > > a user, and then he has objects associated with him, and then they > > have objects associated with them, etc. What do you do when you're > > using CouchDB. Foreign keys aren't idiomatic to CouchDB, right? > > > > On Sat, Jun 13, 2015 at 6:07 AM, Joel Wallis <[email protected]> > > wrote: > > > >> Ram, there's nothing between Python and CouchDB. You can just > >> make a simple search in the Python community to discover > >> alternatives to interact with CouchDB! Also, CouchDB's interface > >> is REST, so you probably already knows how to use it. > >> > >> PostgreSQL is very different than CouchDB. PostgreSQL is a > >> relational database with a wonderful SQL environment, and CouchDB > >> is a NoSQL/schemaless document-based database. Replication and > >> scalability in PostgreSQL is not so simple, although with CouchDB > >> its master-master simplicity is a core feature > >> <http://docs.couchdb.org/en/1.6.1/replication/intro.html>. > >> There's a big gap between them. > >> > >> I believe you must choose your database technology based in your > >> project needs/reality, so take a look at these aspects and tell > >> yourself which technology would fit your project needs. > >> > >> 2015-06-12 13:48 GMT-03:00 Ram Rachum <[email protected]>: > >> > >>> To be honest, in my experience when you use something through > >>> an adapter you always have to deal with more problems. So I'd > >>> prefer to avoid using > >> a > >>> Python library that talks to a JavaScript library. Also it > >>> seems that > >> undo > >>> isn't core functionality for PouchDB, I saw a separate repo for > >>> it. I > >> would > >>> have preferred to have it as core functionality. I think I'll > >>> just stick with Postgres. Thanks for your help! > >>> > >>> On Fri, Jun 12, 2015 at 7:30 PM, Johannes Jörg Schmidt < > >>> [email protected] > >>>> wrote: > >>> > > Hi Ram, > > > > there is Python-PouchDB, which brings PouchDB to the Python land. > > I did not tried it but it sounds interesting: > > https://pythonhosted.org/Python-PouchDB/ > > > > Johannes > > > > On 12.06.2015 18:16, Ram Rachum wrote: > >>>>>> Hi Joel, > >>>>>> > >>>>>> Thanks for the tip. But if I use PouchDB does it mean > >>>>>> that I need to use JavaScript? I'm very experienced with > >>>>>> Python, and hardly experienced with JavaScript. This > >>>>>> application is going to have lots of parts and logic to > >>>>>> it besides this feature, and I'd hate to have to program > >>>>>> the whole thing in JavaScript just because of PouchDB. > >>>>>> > >>>>>> > >>>>>> Thanks, Ram. > >>>>>> > >>>>>> On Fri, Jun 12, 2015 at 6:45 PM, Joel Wallis > >>>>>> <[email protected]> wrote: > >>>>>> > >>>>>>> PS: PouchDB is a client-side JavaScript library that > >>>>>>> also runs with Node.js. It creates a database on > >>>>>>> client-side (using IndexedDB, WebSQL, or other storage > >>>>>>> strategies like localStorage or SQLite by adding > >>>>>>> plugins to it) with the ability to sync data with > >>>>>>> CoudhDB - or a CouchDB-compatible version of PouchDB > >>>>>>> called pouchdb-server (a separated project). > >>>>>>> > >>>>>>> http://pouchdb.com/ :-) > >>>>>>> > >>>>>>> 2015-06-12 12:42 GMT-03:00 Joel Wallis > >>>>>>> <[email protected]>: > >>>>>>> > >>>>>>>> You need PouchDB. Write your app with NW.js and this > >>>>>>>> feature will be trivial to implement. > >>>>>>>> > >>>>>>>> 2015-06-12 8:02 GMT-03:00 Roald de Vries > >>>>>>>> <[email protected]>: > >>>>>>>> > >>>>>>>>> > >>>>>>>>>> On 12 Jun 2015, at 12:55, Ram Rachum > >>>>>>>>>> <[email protected]> wrote: > >>>>>>>>> > >>>>>>>>>> So if I'll want undo functionality, I'll have to > >>>>>>>>>> create my own log > >>>>>>>>> separate > >>>>>>>>>> from CouchDB's native log? > >>>>>>>>> > >>>>>>>>> For example. I’m not sure if there are other > >>>>>>>>> standard solutions to this (pretty common) > >>>>>>>>> problem. > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> -- Joel Wallis Jucá joelwallis.com > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- Joel Wallis Jucá joelwallis.com > >>>>>>> > >>>>>> > > > >>>> > >>> > >> > >> > >> > >> -- Joel Wallis Jucá joelwallis.com > >> > > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJVe+vmAAoJED+W7gN+c0gcOoYH/34mRHI6slCfVIucHaGZLNwc > tgDzFDsorcbSlskCY/pnlzYjJ5QYuwxkQbWzBPrz4ZhvcXktmn0odghwk3D/bsOF > s3H8JFegIJ5IM75o0cCbg0wmR3nQlO+g5qxANuNs3VFElMhJMuyUlhf/UoTK2bnj > RZIVcN/gW05IfVxYHHNoTYJ7t2306U4LafSGOg55vru3peZuJ8M/Lditdy1wNDCm > o2TgNj9qM4i2nOLNkYevWp4lhhiAhWVh9Pn1/8WkxbwuzWNFn78qA2xLvnd4an7S > 2Ia/Jnm0koOHkUBr7IzN0b3acV1bRfXIVjxGWv/aJseuLdZ6I3VFVh2C3IYoiQk= > =m+Z8 > -----END PGP SIGNATURE----- >
