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 -~----------~----~----~----~------~----~------~--~---
