Olivier Grisel wrote:
> Jean-Marc Orliaguet wrote:
>> If you use a primary key to collect all the dyadic relations into a
>> unique relation, then you have implicitly created a triadic relation
>> (identified by the key), except that you also explicitly enumerate the
>> underlying relations. So in the end you'll have to store: the primary
>> key + 3 dyadic relations between 6 elements.
> Yes, I was just saying that is possible to use only binary relations
> throutgh projections on a pure expressive power viewpoint by using
> theprimary key trick. In practice, this might seriously impact the
> perfomance of the data model since it implies a lot of join operations
> where a single select should be sufficient.
> Furthermore, using binary projections instead of n-ary predicates make
> it much harder to a human to quickly understand the model.
the thing is that even logically there *is* a triadic relation created
by the fact that there is a primary key. Just as when you write:
the adapter is registered with a discriminator, isn't it? that's what
you call the "primary key".
the "primary key trick" is not a trick, because you have actually
created a triadic relation by connecting 3 elements together. Without
this key, you couln't build a triadic relation with help of the dyadic
relations only because the unity of the relation would be missing.
Zope3-dev mailing list