From: | Dmitriy Igrishin <dmitigr(at)gmail(dot)com> |
---|---|
To: | John R Pierce <pierce(at)hogranch(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: equivalent of mysql's SET type? |
Date: | 2011-03-10 22:13:40 |
Message-ID: | AANLkTimMQPs_3fWkcvC2WMcg87ob7SVgcukZUGy9GPsH@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
2011/3/9 John R Pierce <pierce(at)hogranch(dot)com>
> On 03/08/11 5:06 PM, Reece Hart wrote:
>
>> I'm considering porting a MySQL database to PostgreSQL. That database uses
>> MySQL's SET type. Does anyone have advice about representing this type in
>> PostgreSQL?
>>
>> MySQL DDL excerpt:
>> CREATE TABLE `transcript_variation` (
>> `transcript_variation_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
>> `transcript_stable_id` varchar(128) NOT NULL,
>> ...
>> `consequence_type`
>> set('ESSENTIAL_SPLICE_SITE','STOP_GAINED','STOP_LOST','COMPLEX_INDEL','SPLICE_SITE')
>> ) ENGINE=MyISAM AUTO_INCREMENT=174923212 DEFAULT CHARSET=latin1;
>>
>>
>>
> why not just have a set of booleans in the table for these individual
> on/off attributes? wouldn't that be simplest?
Yes, it might be simplest at first sight.
But classical solution is relation N - N scales simpler than
any tricks with bytes.
Unfortunately, enums and composite types are not extensible. And
if you need to add yet another option (or remove some option) it
will be problematic.
In case of N - N relation you need just use INSERT/DELETE.
>
>
>
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
--
// Dmitriy.
From | Date | Subject | |
---|---|---|---|
Next Message | Merlin Moncure | 2011-03-10 22:52:13 | Re: equivalent of mysql's SET type? |
Previous Message | Merlin Moncure | 2011-03-10 21:54:35 | Re: equivalent of mysql's SET type? |