Re: Searching OO Associations with RDBMS Persistence Models

From: Robert Martin <>
Date: Fri, 16 Jun 2006 08:37:11 -0400
Message-ID: <2006061608371116807-unclebob_at_objectmentorcom>

On 2006-06-05 16:35:18 -0400, "Mikito Harakiri" <> said:

> Robert Martin wrote:

>> It's not a matter of preference. Application objects are often complex
>> assemblies of many different tables and relationships, all of which
>> have their own keys. Which of those keys is the identity of the
>> application object?
>> For example, I once worked on a network management system in which
>> circuits were terminated by CSUs. There was a CSU table and a circuit
>> table. Logical connections between parties could use many different
>> circuits. The application objects that embodied these logical
>> connections were complex assemblies of circuits and CSUs. They were
>> semantic elements that had identity; but they weren't database
>> entities, and so the concept of "key" was superfluous.
> ...

>> Sorry, what I mean is that the database keys are not unique identifiers
>> for the logical application entities. For example the key for a
>> circuit could not be used to identify a logical connection. A logical
>> connection is a semantic entity, composed of elements from the
>> database. There is a need for these semantic entities to have
>> identities which are not just database keys.
> Could you be more specific, please? You have
> table Circuits (
> ...
> )
> table CSVs (
> ...
> )
> What important attributes are there? Sample data too (couple of records
> to make the matter clear would suffice).
> Then, what application object looks like?
> (Crossposted c.d.t, as I quit following c.o).

A logical connection between two endpoint is a list of circuits. This application object is transient because the connections come and go. They aren't stored in the database.

Robert C. Martin (Uncle Bob)  | email:
Object Mentor Inc.            | blog:
The Agile Transition Experts  | web:
800-338-6716                  |
Received on Fri Jun 16 2006 - 14:37:11 CEST

Original text of this message