[BioSQL-l] Python ORM mapping for BioSQL

Peter biopython at maubp.freeserve.co.uk
Fri Nov 28 18:41:52 UTC 2008


On Fri, Nov 28, 2008 at 6:31 PM, Hilmar Lapp <hlapp at gmx.net> wrote:
>
> On Nov 28, 2008, at 5:43 AM, Peter wrote:
>
>> Why not this:
>>
>> CREATE TABLE taxon_name (
>>      taxon_id          INT(10) UNSIGNED NOT NULL,
>>      name              VARCHAR(255) BINARY NOT NULL,
>>      name_class        VARCHAR(32) BINARY NOT NULL,
>>      PRIMARY KEY (taxon_id,name,name_class)
>> ) TYPE=INNODB;
>
>
> It's part of the changes planned for the next release indeed.

By next release, do you mean BioSQL v1.0.2 or v1.1.0 here?

> At the time this was written it didn't seem to matter much as they are really
> semantically equivalent, and ORM tools weren't around much at the time :-)

I see - that kind of explains the reason why some tables have explicit
composite primary keys, while others just have a unique set of fields.

> I do hope that no-one is using a dynamically configuring ORM at run time so
> that this change can be a drop-in replacement that's fully backwards
> compatible.

Some dynamically configuring ORM code would never have coped with
these tables in the first place - so it doesn't matter here.  In other
cases the user can tell the ORM to treat the tuple
(taxon_id,name,name_class) as a primary key - and this should still be
fine even when this is explicit in the database schema.  I expect (and
hope) this will be a backwards compatible change.

Peter



More information about the BioSQL-l mailing list