My english is horrible, an maybe it wasn't clear, but that was exactly
my problem :).

Currently i'm looking at the code massimo told me about but i think
that the problem isn't here.

I explain: the parent is assigned when the child entity is created (at
the constructor level), to ensure all entities on the same group are
stored together (or close), that way transactions are feasible.

 I don't think i'm capable of doing that right now, but my proposed
soultion (just an idea) is to extend the field definition syntax for
reference fields, adding an atribute to indicate this tipe of
relationship.

Example (blatantly stolen from the book):

db.define_table('person',
                    Field('name'))
db.define_table('dog',
                    Field('name'),
                    Field('owner', db.person, relationship="parent"))

On SQL databases that attribute would be ignored, but in GAE web2py
would enforce the parent relationship at creation and dog[id].parent
would return the result of dog_instance.parent()

I don't know if this is feasible or if i'm total crazy (an option to
consider). Opinions?


On Tue, Jun 22, 2010 at 1:42 AM, Matt <[email protected]> wrote:
> Any chance this could be considered as well?
>
> Currently the DAL doesn't allow you to set the parent which is
> required for GAE entity groups.
>
> http://groups.google.com/group/web2py/browse_thread/thread/3c11deb2bfadf207/96a4324e5fd0cf71?lnk=gst&q=GAE+parent#96a4324e5fd0cf71
>
> On Jun 22, 7:35 am, Carles <[email protected]> wrote:
>> Ok, I'll try.
>>
>> Carles
>>
>> El 21/06/2010, a las 19:03, mdipierro <[email protected]> escribió:
>>
>> > The only file you need to look into is gluon/contrib/gql.py
>>
>> > specifically the select() function which calls filter returns the Rows
>> > object
>>
>> > On Jun 21, 11:55 am, Carles Gonzalez <[email protected]> wrote:
>> >> Ok, thanks! I would like to make the patch myself, but the innards of
>> >> web2py are somewhat complex...
>>
>> >> Thanks again, Carles.
>>
>> >> On Mon, Jun 21, 2010 at 6:43 PM, mdipierro <[email protected]> 
>> >> wrote:
>> >>> Probably it would not be hard to implement. I will look into this next
>> >>> week but if somebody sends me a patch before that I will take it.
>>
>> >>> Massimo
>>
>> >>> On Jun 21, 9:25 am, Carles Gonzalez <[email protected]> wrote:
>> >>>> Hi,
>>
>> >>>> I have developed some applications in web2py, and 2 are running
>> >>>> currently in gae, but now i have serious problem.
>>
>> >>>> My current project is a social application, and when i design
>> >>>> (example) the tables to make an user follow the actions other user
>> >>>> (twitter like) I find that many-to-many relationships in app-engine
>> >>>> are not easily supported.
>>
>> >>>> From my understanding using the tools present in web2py right i would
>> >>>> need to do a lot of processing in memory, an that would hurt
>> >>>> performance greatly.
>>
>> >>>> The pattern proposed by app store developers uses lists and "parent"
>> >>>> relationship:
>>
>> >>>> class Message(db.Model):
>> >>>>     sender = db.StringProperty()
>> >>>>     body = db.TextProperty()
>>
>> >>>> class MessageIndex(db.Model):
>> >>>>     receivers = db.StringListProperty()
>>
>> >>>> indexes = MessageIndex.all(keys_only = True).filter('receivers = ', 
>> >>>> user_id)
>> >>>> keys = [k.parent() for k in indexes)
>> >>>> messages = db.get(keys)
>>
>> >>>> For using that pattern in web2py I would need a method for specifying
>> >>>> the parent of a model instance. Can I specify that relationship using
>> >>>> any method I don't know? If not, would it be hard to implement?
>>
>> >>>> Thanks in advance!

Reply via email to