[ORM]: All about Links, Joins, Relations and mapping

Ruslan Zasukhin sunshine at public.kherson.ua
Fri Oct 12 08:01:56 CDT 2007


On 11/10/07 11:10 AM, "Thorsten Hohage" <thohage at objectmanufactur.com>
wrote:

>> So still sounds like LINK to related table.
> I know you're a database guy, so the database answer should probably
> be: yes it's nothing more than linking tables. Or better "joining"
> tables.
> 
> 
> So IMHO we should define so words before going on further discussing
> the technical aspects behind.
> 
> 1a) There is the database way on how "link" tables, in good old plain
> sql a "join" using (sometimes) FKs
> 
> 1b) In extension to this there are the Valentina features e.g.
> "ObjectLink" (so a "linked" table is a table join with Valentina
> "functionality")
> 
> 
> 2) Using an ORM we map or "link" classes and tables.
> 
> 
> 3) On the OO-class-level there are parent-child-"relations" between
> some classes. In some casses this is not only done with e.g. a simple
> "Array", but with a class in between, so
> 
> ParentClass <> JoinClass <> ChildClass
> 
> each class could now be mapped to a table (ParentTable, JoinTable,
> ChildTable) and these tables could (in classical sql-db) joined with
> foreign keys. Or ParentClass and ChildClass are represented by tables
> and the JoinClass represent a "join" and no specific tables, ... or
> everything done using Valentina feature, of course.
> 
> 
> So my given samples define a relation between to Classes and map
> these join to database "technics" or map the join to a cross-join-
> table. In my (and other ORMs, too) ORM there is no need to "join"
> tables in the DB to relate classes.
> 
> BUT of course on the class level there happen many more things, then
> only modelling the relation between the classes. Because this
> "relation" will also define and "offer" a set of methods and
> properties, which have nothing to do with database at all.

Okay, more clear now.

In fact it sounds a lots like you just define Valentina Abstraction LINK on
the ORM level. Agree?

You define ABSTRACTION of relation between OBJECTS A and B.
You discuss at least TWO its implementation:
        * 1:M based on FK
        * M:M based on third table.

And you mention about some special methods and properties of this
abstraction.

You describe EXACTLY -- the Valentina Link.  :-)   right ?

And VLINK have more implementation kinds than 2.


-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list