FHComplete WaWi Datenbankschema

This commit is contained in:
Andreas Österreicher
2010-10-13 08:46:19 +00:00
parent d850c6ad98
commit a1796cb25b
4 changed files with 8290 additions and 1462 deletions
+1173 -626
View File
File diff suppressed because it is too large Load Diff
+66 -64
View File
@@ -38,80 +38,82 @@ $uid=get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fr diese Seite');
die('Sie haben keine Berechtigung fuer diese Seite');
echo '
<html>
<head>
<title>Datenbank Check</title>
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8">
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../include/js/tablesort/table.css" type="text/css">
<script src="../include/js/tablesort/table.js" type="text/javascript"></script>
<script type="text/javascript">
String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
function display(id)
{
if(id.startsWith("table."))
disableTables();
if(id.startsWith("schema."))
disableSchemas();
document.getElementById(id).style.display="block";
return false;
}
function disableSchemas()
{
elem = document.getElementsByTagName("div");
for(i=0;i<elem.length;i++)
{
div = elem[i];
if(div.id && (div.id.startsWith("schema.") || div.id.startsWith("table.") || div.id.startsWith("attrib.")))
<title>Datenbank Check</title>
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8">
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../include/js/tablesort/table.css" type="text/css">
<script src="../include/js/tablesort/table.js" type="text/javascript"></script>
<script type="text/javascript">
String.prototype.startsWith = function(str)
{
document.getElementById(div.id).style.display="none";
return (this.match("^"+str)==str)
}
}
}
function disableTables()
{
elem = document.getElementsByTagName("div");
for(i=0;i<elem.length;i++)
{
div=elem[i];
if(div.id && (div.id.startsWith("table.") || div.id.startsWith("attrib.")))
function display(id)
{
document.getElementById(div.id).style.display="none";
if(id.startsWith("table."))
disableTables();
if(id.startsWith("schema."))
disableSchemas();
document.getElementById(id).style.display="block";
return false;
}
function disableSchemas()
{
elem = document.getElementsByTagName("div");
for(i=0;i<elem.length;i++)
{
div = elem[i];
if(div.id && (div.id.startsWith("schema.") || div.id.startsWith("table.") || div.id.startsWith("attrib.")))
{
document.getElementById(div.id).style.display="none";
}
}
}
function disableTables()
{
elem = document.getElementsByTagName("div");
for(i=0;i<elem.length;i++)
{
div=elem[i];
if(div.id && (div.id.startsWith("table.") || div.id.startsWith("attrib.")))
{
document.getElementById(div.id).style.display="none";
}
}
}
</script>
<style>
.box
{
border: 1px solid black;
border: 2px solid #E6E6CC;
float: left;
margin: 10px;
padding: 3px;
}
}
</script>
<style>
.box
{
border: 1px solid black;
border: 2px solid #E6E6CC;
float: left;
margin: 10px;
padding: 3px;
}
.boxhead
{
background-color: #F3F3E9;
border:0;
text-align: center;
border-bottom: 1px solid #E6E6CC;
font-weight: bold;
}
</style>
.boxhead
{
background-color: #F3F3E9;
border:0;
text-align: center;
border-bottom: 1px solid #E6E6CC;
font-weight: bold;
}
</style>
</head>
<body>';
+292 -1
View File
@@ -1136,7 +1136,298 @@ if(!@$db->db_query("SELECT lv_orgform_kurzbz FROM campus.vw_lehreinheit LIMIT 1;
else
echo 'campus.vw_lehreinheit: Spalte lv_orgform_kurzbz hinzugefuegt<br>';
}
//WaWi
if(!@$db->db_query('SELECT * FROM wawi.tbl_konto LIMIT 1'))
{
$qry = "
-- Konto
CREATE TABLE wawi.tbl_konto
(
konto_id bigint NOT NULL,
kontonr varchar(32),
beschreibung varchar(256)[],
kurzbz varchar(32),
aktiv boolean NOT NULL,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
CREATE SEQUENCE wawi.seq_konto_konto_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_konto ADD CONSTRAINT pk_wawi_konto PRIMARY KEY (konto_id);
ALTER TABLE wawi.tbl_konto ALTER COLUMN konto_id SET DEFAULT nextval('wawi.seq_konto_konto_id');
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_konto TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_konto_konto_id TO admin;
-- Kostenstelle
CREATE TABLE wawi.tbl_kostenstelle
(
kostenstelle_id bigint NOT NULL,
oe_kurzbz varchar(32),
bezeichnung varchar(256),
kurzbz varchar(32),
aktiv boolean NOT NULL,
budget numeric(12,2),
updateamum timestamp,
updatevon varchar(32),
insertamum timestamp,
insertvon varchar(32)
);
CREATE SEQUENCE wawi.seq_kostenstelle_kostenstelle_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT pk_wawi_kostenstelle PRIMARY KEY (kostenstelle_id);
ALTER TABLE wawi.tbl_kostenstelle ALTER COLUMN kostenstelle_id SET DEFAULT nextval('wawi.seq_kostenstelle_kostenstelle_id');
ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_kostenstelle_organisationseinheit FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit (oe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_konto TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_konto_konto_id TO admin;
-- Bestellung
CREATE TABLE wawi.tbl_bestellung
(
bestellung_id bigint NOT NULL,
bestell_nr varchar(16),
titel varchar(256),
bemerkung varchar(256),
liefertermin date,
besteller_uid varchar(32),
lieferadresse bigint,
kostenstelle_id bigint,
konto_id bigint,
rechnungsadresse bigint,
firma_id bigint,
freigegeben boolean NOT NULL DEFAULT false,
updateamum timestamp,
updatevon varchar(32),
insertamum timestamp,
insertvon varchar(32)
);
CREATE SEQUENCE wawi.seq_bestellung_bestellung_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT pk_wawi_bestellung PRIMARY KEY (bestellung_id);
ALTER TABLE wawi.tbl_bestellung ALTER COLUMN bestellung_id SET DEFAULT nextval('wawi.seq_bestellung_bestellung_id');
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT fk_bestellung_beteller_uid FOREIGN KEY (besteller_uid) REFERENCES public.tbl_benutzer (uid) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT fk_bestellung_lieferadresse FOREIGN KEY (lieferadresse) REFERENCES public.tbl_adresse (adresse_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT fk_bestellung_rechnungsadresse FOREIGN KEY (rechnungsadresse) REFERENCES public.tbl_adresse (adresse_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT fk_bestellung_kostenstelle FOREIGN KEY (kostenstelle_id) REFERENCES wawi.tbl_kostenstelle (kostenstelle_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT fk_bestellung_konto FOREIGN KEY (konto_id) REFERENCES wawi.tbl_konto (konto_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT fk_bestellung_firma FOREIGN KEY (firma_id) REFERENCES public.tbl_firma (firma_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung ADD CONSTRAINT uk_bestellung_bestell_nr UNIQUE (bestell_nr);
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_bestellung TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_bestellung_bestellung_id TO admin;
-- Bestelldetail
CREATE TABLE wawi.tbl_bestelldetail
(
bestelldetail_id bigint NOT NULL,
bestellung_id bigint NOT NULL,
position integer,
menge integer,
verpackungseinheit varchar(16),
beschreibung text,
artikelnummer varchar(32),
preisprove numeric(12,2),
mwst numeric(4,2),
erhalten boolean NOT NULL,
sort integer,
text boolean NOT NULL,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
CREATE SEQUENCE wawi.seq_bestelldetail_bestelldetail_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_bestelldetail ADD CONSTRAINT pk_wawi_bestelldetail PRIMARY KEY (bestelldetail_id);
ALTER TABLE wawi.tbl_bestelldetail ALTER COLUMN bestelldetail_id SET DEFAULT nextval('wawi.seq_bestelldetail_bestelldetail_id');
ALTER TABLE wawi.tbl_bestelldetail ADD CONSTRAINT fk_bestelldetail_bestellung FOREIGN KEY (bestellung_id) REFERENCES wawi.tbl_bestellung (bestellung_id) ON DELETE CASCADE ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_bestelldetail TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_bestelldetail_bestelldetail_id TO admin;
-- Rechnung
CREATE TABLE wawi.tbl_rechnung
(
rechnung_id bigint NOT NULL,
bestellung_id integer,
buchungsdatum date,
rechnungsnr varchar(32),
rechnungsdatum date,
transfer_datum date,
buchungstext text,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
CREATE SEQUENCE wawi.seq_rechnung_rechnung_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_rechnung ADD CONSTRAINT pk_wawi_rechnung PRIMARY KEY (rechnung_id);
ALTER TABLE wawi.tbl_rechnung ALTER COLUMN rechnung_id SET DEFAULT nextval('wawi.seq_rechnung_rechnung_id');
ALTER TABLE wawi.tbl_rechnung ADD CONSTRAINT fk_rechnung_bestellung FOREIGN KEY (bestellung_id) REFERENCES wawi.tbl_bestellung (bestellung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_rechnung TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_rechnung_rechnung_id TO admin;
-- Rechnungsbetrag
CREATE TABLE wawi.tbl_rechnungsbetrag
(
rechnungsbetrag_id bigint NOT NULL,
rechnung_id bigint,
mwst numeric(4,2),
betrag numeric(12,2),
bezeichnung text
);
CREATE SEQUENCE wawi.seq_rechnungsbetrag_rechnungsbetrag_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_rechnungsbetrag ADD CONSTRAINT pk_wawi_rechnungsbetrag PRIMARY KEY (rechnungsbetrag_id);
ALTER TABLE wawi.tbl_rechnungsbetrag ALTER COLUMN rechnungsbetrag_id SET DEFAULT nextval('wawi.seq_rechnungsbetrag_rechnungsbetrag_id');
ALTER TABLE wawi.tbl_rechnungsbetrag ADD CONSTRAINT fk_rechnungsbetrag_rechnung FOREIGN KEY (rechnung_id) REFERENCES wawi.tbl_rechnung (rechnung_id) ON DELETE CASCADE ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_rechnungbetrag TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_rechnungsbetrag_rechnungsbetrag_id TO admin;
-- Projekt Bestellung
CREATE TABLE wawi.tbl_projekt_bestellung
(
projekt_kurzbz varchar(16) NOT NULL,
bestellung_id bigint NOT NULL,
anteil numeric(5,2)
);
ALTER TABLE wawi.tbl_projekt_bestellung ADD CONSTRAINT pk_wawi_projekt_bestellung PRIMARY KEY (projekt_kurzbz, bestellung_id);
ALTER TABLE wawi.tbl_projekt_bestellung ADD CONSTRAINT fk_projekt_bestellung_bestellung FOREIGN KEY (bestellung_id) REFERENCES wawi.tbl_bestellung (bestellung_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_projekt_bestellung ADD CONSTRAINT fk_projekt_bestellung_projekt FOREIGN KEY (projekt_kurzbz) REFERENCES fue.tbl_projekt (projekt_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_projekt_bestellung TO admin;
-- Bestellstatus
CREATE TABLE wawi.tbl_bestellstatus
(
bestellstatus_kurzbz varchar(32) NOT NULL,
beschreibung varchar(256)
);
ALTER TABLE wawi.tbl_bestellstatus ADD CONSTRAINT pk_wawi_bestellstatus PRIMARY KEY (bestellstatus_kurzbz);
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_bestellstatus TO admin;
INSERT INTO wawi.tbl_bestellstatus(bestellstatus_kurzbz, beschreibung) VALUES('Freigabe','Freigabe der Bestellung');
INSERT INTO wawi.tbl_bestellstatus(bestellstatus_kurzbz, beschreibung) VALUES('Storno','Stornierung einer Bestellung');
INSERT INTO wawi.tbl_bestellstatus(bestellstatus_kurzbz, beschreibung) VALUES('Lieferung','Ware wurde geliefert');
INSERT INTO wawi.tbl_bestellstatus(bestellstatus_kurzbz, beschreibung) VALUES('Bestellung','Ware wurde bestellt');
CREATE TABLE wawi.tbl_bestellung_bestellstatus
(
bestellung_bestellstatus_id bigint NOT NULL,
bestellung_id bigint NOT NULL,
bestellstatus_kurzbz varchar(32) NOT NULL,
uid varchar(32),
oe_kurzbz varchar(32),
datum date,
insertvon varchar(32),
insertamum timestamp,
updatevon varchar(32),
updateamum timestamp
);
CREATE SEQUENCE wawi.seq_bestellung_bestellstatus_bestellung_bestellstatus_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_bestellung_bestellstatus ADD CONSTRAINT pk_wawi_bestellung_bestellstatus PRIMARY KEY (bestellung_bestellstatus_id);
ALTER TABLE wawi.tbl_bestellung_bestellstatus ADD CONSTRAINT fk_bestellung_bestellstatus_bestellung FOREIGN KEY (bestellung_id) REFERENCES wawi.tbl_bestellung (bestellung_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung_bestellstatus ADD CONSTRAINT fk_bestellung_bestellstatus_bestellstatus FOREIGN KEY (bestellstatus_kurzbz) REFERENCES wawi.tbl_bestellung_bestellstatus (bestellstatus_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung_bestellstatus ADD CONSTRAINT fk_bestellung_bestellstatus_benutzer FOREIGN KEY (uid) REFERENCES public.tbl_benutzer (uid) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellung_bestellstatus ADD CONSTRAINT fk_bestellung_bestellstatus_organisationseinheit FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit (oe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_bestellung_bestellstatus TO admin;
GRANT SELECT, UPDATE ON SEQUENCE wawi.seq_bestellung_bestellstatus_bestellung_bestellstatus_id TO admin;
-- Tags
CREATE TABLE wawi.tbl_bestellungtag
(
tag varchar(128) NOT NULL,
bestellung_id bigint NOT NULL,
insertamum timestamp,
insertvon varchar(32)
);
ALTER TABLE wawi.tbl_bestellungtag ADD CONSTRAINT pk_wawi_bestellungtag PRIMARY KEY (tag, bestellung_id);
ALTER TABLE wawi.tbl_bestellungtag ADD CONSTRAINT fk_bestellungtag_tag FOREIGN KEY (tag) REFERENCES public.tbl_tag (tag) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestellungtag ADD CONSTRAINT fk_bestellungtag_bestellung FOREIGN KEY (bestellung_id) REFERENCES wawi.tbl_bestellung (bestellung_id) ON DELETE CASCADE ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_bestellungtag TO admin;
CREATE TABLE wawi.tbl_bestelldetailtag
(
tag varchar(128) NOT NULL,
bestelldetail_id bigint NOT NULL,
insertamum timestamp,
insertvon varchar(32)
);
ALTER TABLE wawi.tbl_bestelldetailtag ADD CONSTRAINT pk_wawi_bestelldetailtag PRIMARY KEY (tag, bestellung_id);
ALTER TABLE wawi.tbl_bestelldetailtag ADD CONSTRAINT fk_bestelldetailtag_tag FOREIGN KEY (tag) REFERENCES public.tbl_tag (tag) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE wawi.tbl_bestelldetailtag ADD CONSTRAINT fk_bestelldetailtag_bestellung FOREIGN KEY (bestellung_id) REFERENCES wawi.tbl_bestellung (bestellung_id) ON DELETE CASCADE ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON wawi.tbl_bestelldetail_tag TO admin;
-- Aufteilung
-- TODO
-- Freigabegrenze
ALTER TABLE public.tbl_organisationseinheit ADD COLUMN freigabegrenze numeric(12,2);
-- Berechtigung
ALTER TABLE system.tbl_benutzerrolle ADD COLUMN kostenstelle_id bigint;
ALTER TABLE system.tbl_benutzerrolle ADD CONSTRAINT fk_bentuzerrolle_kostenstelle FOREIGN KEY(kostenstelle_id) REFERENCES wawi.tbl_kostenstelle (kostenstelle_id) ON DELETE CASCADE ON UPDATE CASCADE;
";
}
echo '<br>';
$tabellen=array(
+6759 -771
View File
File diff suppressed because it is too large Load Diff