couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matteo Caprari <matteo.capr...@gmail.com>
Subject Re: Modeling question
Date Tue, 05 Jan 2010 20:39:35 GMT
Sorry for interrupting:
are using empty objects to indicate "max possible string value?"
[ a, {}, {} ]

On Tue, Jan 5, 2010 at 7:56 PM, Coffman, Timothy A
<tim.coffman@vanderbilt.edu> wrote:
> Joscha,
>    If you emit every A, B, and C, with keys:
>       for A's : [ id_of_self, null, null ]
>       for B's : [ id_of_parent, id_of_self, null ]
>       for C's : [ id_of_grandparent, id_of_parent, id_of_self ]
>
> Then a query with startkey: [ a, null, null ]  and endkey: [ a, {}, {} ] will give you
all documents that are A or children of A.  With that set, you could determine the appropriate
combination of ACL's to use.
>
> I hope I have that right.
>
> On 05.01.10 18:49, Chris Anderson wrote:
>
>> if you collate correctly and use startkey and endkey you will be be
>> able to read just the relevant rows from the view. This should be
>> practically instantaneous, so it's probably the right solution.
>
> Actually this is only true for A's (I do this already), as any B or C
> does not necessarily have its own access field.
> As it is not possible to temporary store variables in a map function,
> there is no way I can distribute the acl from a parent element (such as
> A or B) into a child element (B or C).
> I could misuse reduce probably, but as this is discouraged, I did not
> even try.
> Also an A does not have any information about its children, so when
> emitting an A (which will most likely contain the access information), I
> can not also emit that information for any child (B or C).
> This makes using starkey and endkey only suitable for A's but not for
> any child element in the hierarchy.
>
> Any other ideas?
>
>> I mentioned before, but I'll mention again - if there's a way to
>> achieve your business case without modeling a hierarchy (always an
>> impedance mismatch with key value stores) you will simplify a lot of
>> things. Not that it's impossible to do a hierarchy, but if you can get
>> away without it, you'll have a lot less on your plate.
>
> I've read that multiple times, but you know there are these times when a
> hierarchy just is needed.
>
> regards,
> Joscha
>
> Tim Coffman
> Vanderbilt University Medical Center
> (615) 936-6496
>
>



-- 
:Matteo Caprari
matteo.caprari@gmail.com

Mime
View raw message