How to solve the old bool attributes vs pivoting issue?

From: Andreas <maps(dot)on(at)gmx(dot)net>
To: pgsql-sql(at)postgresql(dot)org
Subject: How to solve the old bool attributes vs pivoting issue?
Date: 2012-06-28 01:07:09
Message-ID: 4FEBAE3D.4030202@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi

I do keep a table of objects ... let's say companies.

I need to collect flags that express yes / no / don't know.

TRUE / FALSE / NULL would do.

Solution 1:
I have a boolean column for every flag within the companies-table.
Whenever I need an additional flag I'll add another column.
This is simple to implement.
On the other hand I'll have lots of attributes that are NULL.

Solution 2:
I create a table that holds the flag's names and another one that has 2
foreign keys ... let's call it "company_flags".
company_flags references a company and an id in the flags table.
This is a wee bit more effort to implement but I gain the flexibility to
add any number of flags without having to change the table layout.

There are drawbacks
1) 2 integers as keys would probaply need more space as a boolean
column.
On the other hand lots of boolean-NULL-columns would waste
space, too.
2) Probaply I'll need a report of companies with all their flags.
How would I build a view for this that shows all flags for any
company?
When I create this view I'would not know how many flags exist
at execution time.

This must be a common issue.

Is there a common solution, too?

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message David Johnston 2012-06-28 02:26:52 Re: How to solve the old bool attributes vs pivoting issue?
Previous Message Dickson S. Guedes 2012-06-24 20:00:35 Re: How to limit access only to certain records?