[GSoC] migration
Umesh Singla
umeshksingla at macports.org
Fri Aug 11 11:26:25 UTC 2017
Hi
On Fri, Aug 11, 2017 at 4:19 AM, Joshua Root <jmr at macports.org> wrote:
> On 2017-8-11 03:41 , Bradley Giesbrecht wrote:
>
>> I think Josh is referring to 3NF normalization (third normal form). I
>> don’t think this use case warrants this complexity. I think it is fine for
>> two snapshot id’s to reference the same port+variant combination. When a
>> snapshot id is deleted, cascade delete.
>>
>
> Again I'm not sure how this differs from what I wrote. A snapshot contains
> any number of ports, and a port can be in any number of snapshots.
>
I tried to clear this in my other mail.
> Don't worry about having a completely textbook normalised DB, but do avoid
> replicating large amounts of the data.
Sure.
> And TBH a join query would be one of the simplest parts of all this...
>
I started with a join query actually. Something like this,
char* query = "SELECT port_name, requested, variant_name, variant_sign "
"FROM registry.snapshots "
"INNER JOIN "
"registry.snapshot_ports ON "
"snapshots.id=snapshot_ports.snapshots_id "
"LEFT JOIN "
"registry.snapshot_port_variants ON "
"snapshot_ports.id=snapshot_port_variants.snapshot_ports_id"
"WHERE snapshots.id=?";
But then I was having a hard time passing the result to Tcl without a
snapshot struct. And if there is a need for reg_snapshot, then need for
methods as well to operate on it. So, I separated the SQL functions to
fetch ports first and then variants.
But, having said this all, now I think I could have solved this with JOIN
query as well. All these ideas keep coming to me, the longer I spend my
time.
I can really use an idea on workflow here.
- Umesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20170811/c27b7c7c/attachment.html>
More information about the macports-dev
mailing list