drop table if exists liefert;
drop table if exists hersteller;
drop table if exists eingebaut_in;
drop table if exists bauteil;

create table bauteil
  (bid          integer     not null,
   bezeichnung  text        not null,
   primary key (bid)
  );

create table eingebaut_in
  (bid          integer     not null,
   eingebaut_in integer     not null,
   primary key (bid, eingebaut_in),
   foreign key (bid)          references bauteil(bid),
   foreign key (eingebaut_in) references bauteil(bid)
  );

create table hersteller
  (hid       integer     not null,
   name      text        not null,
   primary key (hid)
  );

create table liefert
  (bid           integer      not null,
   hid           integer      not null,
   befristet_bis date,
   preis         numeric(6,2) not null,
   primary key (bid, hid, preis),
   foreign key (bid) references bauteil(bid),
   foreign key (hid) references hersteller(hid)
  );


insert into bauteil values (1, 'abc');
insert into bauteil values (2, 'def');
insert into bauteil values (3, 'ghi');

insert into eingebaut_in values (1, 2);
insert into eingebaut_in values (1, 3);

insert into hersteller values (1, 'Maier');
insert into hersteller values (2, 'Maier');
insert into hersteller values (3, 'M?ller');

insert into liefert values (1, 1, null,         100.00);
insert into liefert values (2, 1, null,          99.00);
insert into liefert values (3, 1, null,         110.00);
insert into liefert values (3, 1, '2005-02-28',  90.00);

insert into liefert values (1, 2, null,         200.00);

insert into liefert values (1, 3, null,         200.00);
insert into liefert values (2, 3, null,         100.00);
insert into liefert values (2, 3, '2005-02-28',  90.00);
insert into liefert values (2, 3, '2004-02-28',  70.00);
insert into liefert values (3, 3, '2005-02-28',  90.00);
