 -- file to be a part of several builds at the same time, and for a single build
 -- to contain several files.
 create table build_files (
+    id integer primary key,
     build_id integer references build(id) not null,
     file_id integer references files(id) not null
 );

-- Associate key/value data with an individual source.  It is possible for a
-- single source to have many different key/value data pieces, or none.
create table source_key_values (
    source_id integer references sources(id) not null,
    key_val_id integer references key_val(id) not null
);

-- Associate key/value data with an individual build.  It is possible for a
-- single build to have many different key/value data pieces, or none.
create table build_key_values (
    id integer primary key,
    build_id integer references builds(id) not null,
    key_val_id integer references key_val(id) not null
);
