My apologies for the delay in reply -- my original subscription request 
got sorted out and I stopped checking my gmail account so I missed your 
reply.

Jonathan LaCour wrote:
> Rufus Pollock wrote:
>>> One thing we both noted is that in order to version relationships,
>>> those relationships need to be either:
> 
>>>      1. Stored as part of the main entity's table.  Or,
>>>      2. Be a mapped object as well.
> 
>> You are really want to go with 2 if both ends of the link are
>> versioned. For example, for http://www.ckan.net/ I want to have a
>> versioned Package and a versioned Tag object with a m2m link between
>> Packages and Tags.
> 
> Agreed.

In addition to be able to version these relationships we'll need a 
central 'Revision' object. I'll return to this in a separate post.

[snip]

> The `has_many` with a `through` keyword would simply create a property
> on the entity proxying through the association objects, for convenience.
> This should be really easy to implement, although I need to gain a
> better understanding of the new autodelay technique to be really
> confident about that.

I note you've already implemented this and it looks good:

<http://groups.google.com/group/sqlelixir/browse_thread/thread/132be031cc384805/8cdaadadf504cf79#8cdaadadf504cf79>

>>> Once the relationships themselves are mapped objects, it becomes
>>> easier to version them using the existing `acts_as_versioned` Mapper
>>> Extension.
> 
>> To some extent but I think this is a fairly small part of doing full
>> versioning so I don' think this should be the main reason driving the
>> change.
> 
> Well, its not the *only* consideration.  Its also a much richer form of
> relationship, and I think its easier to understand.  I have never really
> been a fan of the readability and clarify of `has_and_belongs_to_many`
> and numerous people have complained to me that it didn't make immediate
> sense to them.  I think going with explicit association objects will
> make things a bit easier to understand, with the added benefit that it
> should make versioning a bit easier to do as well.

I absolutely agree this change has wider value -- I just didn't want you 
to make a major change for the sake of 'versioning' alone. Anyway good 
that a prototype version of this is now in subversion.

~rufus

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SQLElixir" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlelixir?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to