|
|
### ER-Diagramm
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
### Aufbau der Datenbank
|
|
|
Die Datenbank besteht aus sieben einzelnen Tabellen welche untereinander referenziert und somit verbunden sind. Im folgenden Abschnitt wird auf die einzelnen Tabellen und Ihren jeweiligen Referenzierungen eingegangen. In der Datenbank ist ein löschen von Daten nicht vorgesehen. Anstelle dessen wird der Wert "Geloescht" auf 0 oder 1 gesetzt, damit das Programm weiß, ob ein Datum als gelöscht zu behandeln ist oder nicht. Hierbei steht der Wert 1 für gelöscht. Dieses Verfahren wird bei der gesamten Datenbank angewendet. Die Refernzierungen sind in dieser Datenbank immer "1 zu N" Beziehungen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Projektmitglieder"**
|
|
|
enthält alle Benutzer, welche einem gewissen Projekt zugeordnet sind. Dabei enthält die Tabelle selber nur das Datum "ProjektmitgliederID" und "Geloescht". Alle anderen Daten sind aus anderen Tabellen referenziert.
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| ProjektmitgliederID | Integer | Primary Key
|
|
|
| ProjektID | Integer | Foreign Key
|
|
|
| BenutzerID | Integer | Foreign Key
|
|
|
| Geloescht | TinyInteger |
|
|
|
Die Tabelle referenziert auf die Tabelle "Benutzer" und auf die Tabelle "Projekte".
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Benutzer"**
|
|
|
enthällt alle Benutzer, welche in dem Programm angelegt wurden. Die Tabelle enthält keinen Foreign Key (im Folgenden: FK), sondern nur einen Primary Key (im Folgenden: PK) welcher wiederum als FK in den Tabellen Projektmitglieder, Projekte und Buchungen dient.
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| BenutzerID | Integer | Primary Key
|
|
|
| Benutzername | Varchar |
|
|
|
| Emailadresse | Varchar |
|
|
|
| Passwort | Varchar |
|
|
|
| Admin | TinyInteger |
|
|
|
| Geloescht | TinyInteger |
|
|
|
Die Varriable "Admin" funktioniert nach dem selben Prinzip wie die Varriable "Geloescht". Wurde der Wert auf 1 gesetzt, so wird der User als Admin eingestuft.
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Projekte"**
|
|
|
enthält alle Projekte, welche in dem Programm angelegt wurden. Die Tabelle enthält die beiden FK "ProjektleiterID", welche die BenutzerID aus der Tabelle "Benutzer" entspricht und den FK "UnternehmenID", welche der gleichnamigen Varriable aus der Tabelle "Unternehmen" entspricht. Der PK der Tabelle, ProjektID, dient als FK in den Tabellen Projektmitglieder und Projektaufgaben.
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| ProjektID | Integer | Primary Key
|
|
|
| Projektname | Varchar |
|
|
|
| ProjektleiterID | Integer | Foreign Key
|
|
|
| UnternehmenID | Integer | Foreign Key
|
|
|
| Von | Datetime |
|
|
|
|Bis | Datetime |
|
|
|
| Aktiv | TinyInteger |
|
|
|
| Geloescht | TinyInteger |
|
|
|
Die Varriable "Aktiv" zeigt, ob das Projekt aktuell noch bearbeitet wird, also aktiv ist, oder ob das Projekt bereits abgeschlossen ist. Der Wert 1 steht für aktiv, 0 für inaktiv bzw. abgeschlossen.
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Aufagben"**
|
|
|
enthält alle Aufgaben, welche in dem Programm global angelegt wurden. Die Tabelle enthält keinen FK, sondern nur den PK welcher als FK in der Tabelle "Projektaufgaben" dient.
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| AufgabenID | Integer | Primary Key
|
|
|
| Aufgabenname | Varchar |
|
|
|
| Geloescht | TinyInteger |
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Unternehmen"**
|
|
|
enthällt alle Aufgaben, welche in dem Programm angelegt wurden. Die Tabelle enthält keine FK, sondern nur den PK welcher als FK in der Tabelle "Projekte" dient.
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| UnternehmenID | Integer | Primary Key
|
|
|
| Unternehmenname | Varchar |
|
|
|
| Geloescht | TinyInteger |
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Projektaufgaben"**
|
|
|
enthällt alle Aufgaben innerhalb eines bestimmten Projekts. Die Tabelle enthält die beiden FK "ProjektID", aus der Tabelle "Projekte" und "AufgabenID", aus der Tabelle "Aufgaben". Der PK dient als FK in der Tabelle "Buchungen".
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| ProjektaufgabenID | Integer | Primary Key
|
|
|
| ProjektID | Integer | Foreign Key
|
|
|
| AufgabenID | Integer | Foreign Key
|
|
|
| MaximalStunden| Integer |
|
|
|
| Geloescht | TinyInteger |
|
|
|
Die Varriable "MaximalStunden" beschreibt die Anzahl an Stunden, welche für diese Aufgabe angedacht sind. Benutzer sind angehalten, diesen Wert nicht zu überschreiten. Technisch können jedoch problemlos mehr Stunden auf die Aufgabe gebucht werden, als es die "MaximalStunden" vorgibt. Es gibt also keinen Fehler, wenn Überstunden gebucht werden.
|
|
|
|
|
|
|
|
|
|
|
|
**Tabelle "Buchungen"**
|
|
|
enthällt alle Buchungen eines Benutzers, welche auf eine bestimmte Projektaufgabe getätigt wurden. Die Tabelle enthällt die FK "BenutzerID", aus der Tabelle "Benutzer" und "ProjektaufgabenID" aus der Tabelle "Projektaufgaben". Der PK dient als FK in keiner Tabelle.
|
|
|
| Varriable | Datentyp | Funktion |
|
|
|
| :----: | :------: | :------: |
|
|
|
| BuchungenID | Integer | Primary Key
|
|
|
| BenutzerID | Integer | Foreign Key
|
|
|
| ProjektaufgabenID | Integer | Foreign Key
|
|
|
| Stunden | Float |
|
|
|
| Datum | Date|
|
|
|
| Kommentar| Varchar |
|
|
|
| Geloescht | TinyInteger |
|
|
|
|
|
|
|
|
|
|
|
|
[Home](home)
|
|
|
|
... | ... | |