Really interesting work, but I’m not sure, but your approach reminds me of Og
thanks, I had in fact heard of Og, but did not know exactly what it did.
I think the main difference between ODBA and any ORM (Object
Relational Mapping) - such as Og - is that ODBA isn’t really an ORM.
The main differences, as far as I can see are:
- Where a good ORM will create and update a Database Schema according
to the known mapped classes (and with a less automated one you have to
do the job manually), ODBA does not change the database Schema, except
when creating or dropping an index.
- In a ORM, each attribute of an object needs to be stored in a Field
with a defined and static Type. In ODBA, dynamic typing is preserved.
The reason for this is that ODBA stores entire Objects in a
deconnected and marshalled form, leveraging the strengths of whichever
Marshaller (I’ve tried Marshal and YAML) is used.
The Downside of this is obviously that using ODBA/Marshal and to a
lesser extent ODBA/YAML means subscribing to a lockin - i.e. not being
able to access the same data from a non-ruby application. And if
ad-hoc queries are needed, or data needs to be repaired manually etc.,
this can only be achieved through a ruby script (irb to the rescue!).
Did this answer your question?
All the best