[Engine-devel] What type of DB inheritance to use?

Saggi Mizrahi smizrahi at redhat.com
Tue May 14 14:40:10 UTC 2013


Sorry, very tired. I read what I wrote and thought I should rephrase.

>From my experience inheritance in the database is usually a bad idea all
together.
Even if "user" and "password" fields exist in more than one
provider type
they shouldn't share a table as their indexes and type validation have no
reason to be > shared (even if they theoretically can)and it makes both
suffer from forced standardisation.

I don't know what a "Provider" in relation to your specific problem
but in the classic sense you shouldn't even have all providers be part
of the same type hatchery as you shouldn't have all factories or adapters.
A "Provider" is a trait and not identity. In Java terms, an interface and
not a base class.


----- Original Message -----
> From: "Saggi Mizrahi" <smizrahi at redhat.com>
> To: "Federico Simoncelli" <fsimonce at redhat.com>
> Cc: "Eli Mesika" <emesika at redhat.com>, "engine-devel" <engine-devel at ovirt.org>
> Sent: Tuesday, May 14, 2013 10:35:20 AM
> Subject: Re: [Engine-devel] What type of DB inheritance to use?
> 
> From my experience inheritance in the database is usually a bad idea all
> together.
> Fields like even if "user" and "password" fields exist in more than one
> provider type
> they shouldn't share a table as their indexes and type validation have no
> reason to be
> shared (even if they theoretically can)and it makes both suffer from forced
> standardisation.
> 
> I don't know what a "provider" is in your world but in the classic sense you
> should even
> have all providers be part of the same object inheritance as you shouldn't
> have all
> factories. A "Provider" is a function and not identity. In Java terms, and
> interface and
> not a base class.
> 
> ----- Original Message -----
> > From: "Federico Simoncelli" <fsimonce at redhat.com>
> > To: "Eli Mesika" <emesika at redhat.com>
> > Cc: "engine-devel" <engine-devel at ovirt.org>
> > Sent: Tuesday, May 14, 2013 3:13:30 AM
> > Subject: Re: [Engine-devel] What type of DB inheritance to use?
> > 
> > ----- Original Message -----
> > > From: "Eli Mesika" <emesika at redhat.com>
> > > To: "Liran Zelkha" <liran.zelkha at gmail.com>
> > > Cc: "engine-devel" <engine-devel at ovirt.org>
> > > Sent: Tuesday, May 14, 2013 3:21:11 AM
> > > Subject: Re: [Engine-devel] What type of DB inheritance to use?
> > > 
> > > 
> > > 
> > > ----- Original Message -----
> > > > From: "Liran Zelkha" <liran.zelkha at gmail.com>
> > > > To: "Yair Zaslavsky" <yzaslavs at redhat.com>
> > > > Cc: "engine-devel" <engine-devel at ovirt.org>
> > > > Sent: Sunday, May 12, 2013 1:19:07 PM
> > > > Subject: Re: [Engine-devel] What type of DB inheritance to use?
> > > > 
> > > > Hi
> > > > 
> > > > From my experience, single table inheritance quickly grows into
> > > > something
> > > > unmanagable, as more and more (child related) fields are added, each
> > > > line
> > > > has a few relevant attributes, and a long list of NULL values.
> > > > I would go with option 3. With materialized views, the costs of joins
> > > > can
> > > > be
> > > > eliminated.
> > > 
> > > +1
> > 
> > I'd prefer option 3 too.
> > 
> > --
> > Federico
> > _______________________________________________
> > Engine-devel mailing list
> > Engine-devel at ovirt.org
> > http://lists.ovirt.org/mailman/listinfo/engine-devel
> > 
> 



More information about the Devel mailing list