Re: Why is MySQL more chosen over PostgreSQL?

Bruce Momjian <pgman@candle.pha.pa.us>

From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Curt Sampson <cjs@cynic.net>
Cc: Christopher Kings-Lynne <chriskl@familyhealth.com.au>, Hannu Krosing <hannu@tm.ee>, Hackers <pgsql-hackers@postgresql.org>
Date: 2002-07-31T03:11:14Z
Lists: pgsql-hackers
Curt Sampson wrote:
> On Wed, 31 Jul 2002, Christopher Kings-Lynne wrote:
> 
> > > I highly doubt that. Relating two tables to each other via a key, and
> > > joining them together, allows you to do everything that inheritance
> > > allows you to do, but also more. If you have difficulty with keys and
> > > joins, well, you really probably want to stop and fix that problem
> > > before you do more work on a relational database....
> >
> > I'm still not convinced of this.  For example, my friend has a hardware
> > e-store and every different class of hardware has different properties.  ie
> > modems have baud and network cards have speed and video cards have ram.  He
> > simply just has a 'products' table from which he extends
> > 'networkcard_products', etc. with the additional fields.  Easy.
> 
> And what's the problem with networkcard_products being a separate table
> that shares a key with the products table?
> 
>     CREATE TABLE products (product_id int, ...)
>     CREATE TABLE networkcard_products_data (product_id int, ...)
>     CREATE VIEW networkcard_products AS
> 	SELECT products.product_id, ...
> 	FROM products
> 	JOINT networkcard_products_data USING (product_id)
> 
> What functionality does table inheritance offer that this traditional
> relational method of doing things doesn't?

You can add children without modifying your code.  It is classic C++
inheritance;  parent table accesses work with the new child tables
automatically.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026