Re: "Reverse" inheritance?

From: vinny <vinny(at)xs4all(dot)nl>
To: Tim Uckun <timuckun(at)gmail(dot)com>
Cc: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org>, pgsql-general-owner(at)postgresql(dot)org
Subject: Re: "Reverse" inheritance?
Date: 2017-04-04 06:43:10
Message-ID: 27b6902bb980d77fe237e96d8aa912b8@xs4all.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I agree with the barking up the wrong tree, building a physical tree in
tables doesn't sound right
given that you will have to create a new branch in the tree when a new
version/variation of ubuntu comes out.

Also think about how you are going to do basic queries like listing all
known unix variants; if that is hidden in the table names
then you'll have to issue DDL queries to do the work of SELECT queries,
which just sounds wrong to me.

I'd go for a tree, possibly using recursive CTE's to dig it.

On 2017-04-04 05:19, Tim Uckun wrote:
> I have thought of doing something like a single table inheritance and
> it
> could be done but I thought this might be a little more elegant.
>
> On Tue, Apr 4, 2017 at 2:15 PM, David G. Johnston <
> david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>
>> On Mon, Apr 3, 2017 at 7:07 PM, Tim Uckun <timuckun(at)gmail(dot)com> wrote:
>>
>>> I am trying to make postgres tables work like an object hierarchy. As
>>> an
>>> example I have done this.
>>>
>>
>> ​I suspect you are barking up the wrong tree ;)
>>
>> You are probably better off incorporating something like the "ltree"
>> type
>> to encode the taxonomy.
>>
>> https://www.postgresql.org/docs/current/static/ltree.html
>>
>> I haven't had a chance to leverage it myself but the concept it
>> embodies
>> is solid.
>>
>> David J.
>> ​
>>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tim Uckun 2017-04-04 07:12:40 Re: "Reverse" inheritance?
Previous Message Tim Uckun 2017-04-04 03:19:53 Re: "Reverse" inheritance?