-----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-----

Reply via email to