129 lines
4.3 KiB
SQL
129 lines
4.3 KiB
SQL
create database hausverwaltung;
|
|
|
|
use hausverwaltung;
|
|
|
|
create table objekt (
|
|
id integer unsigned not null auto_increment,
|
|
shortname varchar(32) not null,
|
|
flaeche decimal (20, 10) not null,
|
|
constraint primary key (id),
|
|
constraint unique key uk_objekt_shortname (shortname)
|
|
) engine=InnoDB;
|
|
|
|
create table wohnung (
|
|
id integer unsigned not null auto_increment,
|
|
objekt integer unsigned not null,
|
|
shortname varchar(64) not null,
|
|
flaeche decimal (20, 10) not null,
|
|
constraint primary key (id),
|
|
constraint unique key uk_wohnung_objekt_shortname (objekt, shortname),
|
|
constraint foreign key fk_wohnung_objekt (objekt)
|
|
references objekt (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
create table mieter (
|
|
id integer unsigned not null auto_increment,
|
|
wohnung integer unsigned not null,
|
|
anrede varchar(128),
|
|
vorname varchar(128),
|
|
nachname varchar(128) not null,
|
|
strasse varchar(128),
|
|
plz varchar(10),
|
|
ort varchar(128),
|
|
telefon varchar(64),
|
|
einzug date not null,
|
|
auszug date,
|
|
constraint primary key (id),
|
|
constraint foreign key fk_mieter_wohnung (wohnung)
|
|
references wohnung (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
alter table mieter
|
|
add column adresszusatz varchar(128);
|
|
|
|
create table zahlung (
|
|
id integer unsigned not null auto_increment,
|
|
mieter integer unsigned not null,
|
|
datum_ist date not null,
|
|
datum_soll date not null,
|
|
betrag decimal (20, 10) not null,
|
|
kommentar varchar(128),
|
|
constraint primary key (id),
|
|
constraint foreign key fk_zahlung_mieter (mieter)
|
|
references mieter (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
create table miete (
|
|
id integer unsigned not null auto_increment,
|
|
wohnung integer unsigned not null,
|
|
betrag decimal (20, 10) not null,
|
|
gueltig_ab date not null,
|
|
gueltig_bis date not null,
|
|
constraint primary key (id),
|
|
constraint unique key uk_miete_wohnung_gueltig_ab (wohnung, gueltig_ab),
|
|
constraint unique key uk_miete_wohnung_gueltig_bis (wohnung, gueltig_bis),
|
|
constraint foreign key fk_miete_wohnung (wohnung)
|
|
references wohnung (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
create table betriebskosten_vorauszahlung (
|
|
id integer unsigned not null auto_increment,
|
|
objekt integer unsigned not null,
|
|
betrag decimal (20, 10) not null,
|
|
gueltig_ab date not null,
|
|
gueltig_bis date not null,
|
|
constraint primary key (id),
|
|
constraint unique key uk_betriebskosten_vorauszahlung_objekt_gueltig_ab (objekt, gueltig_ab),
|
|
constraint unique key uk_betriebskosten_vorauszahlung_objekt_gueltig_bis (objekt, gueltig_bis),
|
|
constraint foreign key fk_betriebskosten_vorauszahlung_objekt (objekt)
|
|
references objekt (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
create table betriebskosten_abrechnung (
|
|
id integer unsigned not null auto_increment,
|
|
objekt integer unsigned not null,
|
|
jahr year not null,
|
|
betrag decimal (20, 10) not null,
|
|
constraint primary key (id),
|
|
constraint unique key uk_betriebskosten_abrechnung_objekt_jahr (objekt, jahr),
|
|
constraint foreign key fk_betriebskosten_abrechnung_objekt (objekt)
|
|
references objekt (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
create table forderung (
|
|
id integer unsigned not null auto_increment,
|
|
mieter integer unsigned not null,
|
|
datum date not null,
|
|
betrag decimal (20, 10) not null,
|
|
kommentar varchar(128),
|
|
ref_wohnung integer unsigned,
|
|
constraint primary key (id),
|
|
constraint foreign key fk_forderung_mieter (mieter)
|
|
references mieter (id)
|
|
on delete restrict
|
|
on update cascade,
|
|
constraint foreign key fk_forderung_wohnung (ref_wohnung)
|
|
references wohnung (id)
|
|
on delete restrict
|
|
on update cascade
|
|
) engine=InnoDB;
|
|
|
|
|
|
create user 'hausverwaltung-ui'@'%' identified by 'test123';
|
|
grant select on hausverwaltung.objekt to 'hausverwaltung-ui'@'%';
|
|
grant select on hausverwaltung.wohnung to 'hausverwaltung-ui'@'%';
|
|
grant select on hausverwaltung.mieter to 'hausverwaltung-ui'@'%';
|
|
grant select on hausverwaltung.forderung to 'hausverwaltung-ui'@'%';
|
|
grant select, update, insert on hausverwaltung.zahlung to 'hausverwaltung-ui'@'%'; |