[Zope3-dev] zwiki: performance of findChildren()

Steve Alexander steve@cat-box.net
Wed, 23 Apr 2003 17:35:23 +0200


> I thought that ObjectHubs were meant to allow us to do relations.

The ObjectHub allows us to easily build higher-level things to manage 
relationships. It has nothing to do with relations.


> Maybe 
> that's where my confusion about ObjectHub has stemmed from, because I 
> thought it was a system level relationship tool.

The relationship service will be built using hubIds, I expect.


> Doing weak references between business objects in the system is my 
> el-numero-uno wanted feature.

I assume you mean lightweight references, or location-independent 
references, not weak references.


>  What I'd ultimately like is something 
> like the following::
> 
>   People
>    |
>    +--Bob
> 
>   Receipts
>    |
>    +--Receipt1
>    |
>    +--Receipt2
> 
> 
>  in: Receipt1.purchaser = People.Bob
>      # maybe some sort of weakref(People.Bob)?

   Receipt1.purchaser = getHubId(People.Bob)

>  in: Receipt2.purchaser = People.Bob
>  in: Receipt2.purchaser.name
>  out:  'Bob'
>  in: Reciept2.purchaser.name = "Robert"
>  in: Receipt1.purchaser.name
>  out:  'Robert'


> IE - How can we do one-to-many, many-to-one, many-to-many, and 
> one-to-one (non-containment) relationships in the ZODB that is 
> relatively natural?  Why wouldn't an ObjectHub fill these scenarios?

The ObjectHub provides the lightweight location-independent reference.


> I want to wean myself off of SQL as soon as possible, but optimized 
> Querying and Relationships are still a tough point in Zope/ZODB.

I'll be continuing work on the Query service soon.

--
Steve Alexander