X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Message-ID: <20150825022302.21819.qmail@stuge.se> Date: Tue, 25 Aug 2015 04:23:02 +0200 From: "Peter Stuge (peter AT stuge DOT se) [via geda-user AT delorie DOT com]" To: geda-user AT delorie DOT com Subject: Re: [geda-user] pcb file format Mail-Followup-To: geda-user AT delorie DOT com References: <20150824223846 DOT 0ba61ba7 AT jive DOT levalinux DOT org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150824223846.0ba61ba7@jive.levalinux.org> Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk Hi, Lev (leventelist AT gmail DOT com) [via geda-user AT delorie DOT com] wrote: > Here I propose the file format of the next generation of PCB. .. > Okay. I'm not a database architect, and you can now start throwing Thanks for starting to do this. I do architect databases and for edacore I would work hard to avoid an N:N table. They aren't great. It's better to have explicit FKs between tables. I might have a single table which includes columns for all types of objects, and I would have a group table with a FK parent field refering to itself. Please eliminate all the redundancy in your schema. pcb_object -> pcb pcb_id -> id and so on. Otherwise queries become immensely verbose. It looks like it is important to qualify every column, but actually in queries if there is any ambiguity then columns can optionally be qualified with the table name, and if there isn't any then the redundancy is avoided. This is a matter of style, but I think an important one for efficiency and both readability and writability of queries down the line. > I know that sqlite is yet another dependency It's fine, don't worry. //Peter