Re: Mixing OO and DB

From: dawn <dawnwolthuis_at_gmail.com>
Date: Wed, 26 Mar 2008 08:59:42 -0700 (PDT)
Message-ID: <12ee1d32-5713-43e9-8570-eb5f9012325c_at_a1g2000hsb.googlegroups.com>


On Mar 25, 11:48 am, mAsterdam <mAster..._at_vrijdag.org> wrote:
> David Cressey wrote:
> > It's very simple.  Over in comp.object,  there's  a tolerance for bad data.
> > In c.d.t.,  there's a tolerance for bad behavior.
>
> :-)
>
> This gets my post of the month vote.

You guys are killin' me. I'm trying to be silent (and stay in the kitchen and ...) but then you continue this juicy topic for weeks.

Clever, David (wrong, of course, but it does give a good cdt spin). Data accuracy is one of the issues addressed when attempting to reduce the impedance mismatch between the logical model (the model employed by the developer) of data when using an API or language for persisting data on a secondary storage device (e.g. data in an RDBMS, or for purists an SQL-DBMS) and the logical data model of data backing a user interface, for example.

Right now I am designing and implementing schema using classes with both single-valued properties and multi-valued properties.(Property EmailAddresses as list of EmailAddress;). In particular, I'm storing the data in a MultiValue database and the UI runs in a web browser.

Using a commercial AJAX framework (from InterSystems), I can write a Model (aka updatable view, logical file, or someone told me yesterday it was like a VB collection) that includes such a list among its properties. Then I specify a data binding between an appropriate UI component and this list property and get full CRUD support. How cool is that? I have called this "End to End AJAX" for talks (although I liked that title better two years ago, so if anyone has a better one...). It's elegant and requires no SQL-92-like RM modeling, no impedance mismatches at points where one might otherwise switch between RM and OO models. I can use MultiValue modeling (the Nelson-  "data model") from end to end.

I'll retreat back to my kitchen now where I'm writing code directly relevant to the topic of this thread, not because I want to show it can be done, but because I have software to write and I think this is a good way to get the job done well. hugs to some, cheers to all! --dawn Received on Wed Mar 26 2008 - 16:59:42 CET

Original text of this message