
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@redhat.com> To: "Eli Mesika" <emesika@redhat.com> Cc: "engine-devel" <engine-devel@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@redhat.com> To: "Liran Zelkha" <liran.zelkha@gmail.com> Cc: "engine-devel" <engine-devel@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@gmail.com> To: "Yair Zaslavsky" <yzaslavs@redhat.com> Cc: "engine-devel" <engine-devel@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@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-devel