Hallo IT-Community,
ich muss zur Beschleunigung eines Prozesses einen Unterschriftenprozess automatisieren.
Das heißt Dokumente werden zur Zeit zu Fuß zu den Verantwortlichen gebracht, sodass diese dieses Dokument unterzeichnen können. Das soll mit Hilfe einer Web-Anwendung automatisiert werden.
Also Berechtigte Personen können mehrere Dokumente (für die sie berechtigt sind) unterzeichnen (JA/NEIN-boolsch) und andersrum kann ein Dokument von einer oder mehreren Personen unterschrieben werden. Wir haben also "m" "Berechtigte" zu "m" "Dokumenten". Wir brauchen also eine Verbindungstabelle die von "Berechtigte" und "Dokumente" die Schlüssel nimmt. Diese Tabelle nennen wir auch direkt "Unterschriften". So haben wir also nur 3 Tabellen.
Nun wollte ich meine Datenbank-Manipulationen und Selects mit meinen "Eingabe-Knöpfen" verbinden. Da ich wenig Ahnung von PHP habe und überhaupt noch nicht weiß welches Programm überhaupt dazu in Frage kommt (vlt. ein bestimmter Formular-Generator oder ein anderes Programm....), muss ich nur ein Konzept entwickelt: Also die SQL-Logik hinter den Eingabefeldern beschreiben und das Frontend in einer Power-Point-Präsentation zeigen.
Das Front-End sieht in etwas so aus, dass ich mich erst einmal anmelden muss (Username/Passwort). Diese 2 Attribute sind in der Tabelle "Berechtigte" definiert. Dann kann ich aus einem Dropdown-Menü das betreffende Dokument (liegt in einer Dokumentenmanagement-Software) auswählen und es mit einem Klick auf einen Knopf "Signieren" signieren und außerdem einen Kommentar in ein Textfeld schreiben. Zusätzlich zu signieren müssen noch 3 weitere Knöpfe anklickbar sein: "approved", "rejected", "in process". Man muss also die 3 eben erwähnten Optionen und das Kommentarfeld signieren. Fragt mich nicht warum. Wird so erwünscht.
Ich hab ein Relationship-Diagramm der Tabellen im Anhang.
Nun zur SQL-Logik hinter den Feldern, die ich beschreiben soll. Bin mir da sehr unsicher.
a) Das Auswahlfeld des Dokuments ist einfach:
SELECT Referenz zu Dokument FROM Dokument
Die Auswahl wäre dann in der Variablen hinter dem Auswahlfeld abgespeichert.
b) Das schwierige is der Knopf "Signieren" mit dem ich alle Eingaben der Maske irgendwie in die Datenbank und nur zum jeweiligen "Berechtigten" schreiben muss.
Es ist klar, dass dieser Knopf verschiedene INSERT INTOS machen muss:
INSERT INTO Unterschrift (Comment)
VALUE ("Text aus Eingabefeld");
AND
INSERT INTO Unterschrift (Signed?)
VALUE ("Wert der hinter dem Knopf "Signieren" liegt");
Ich frage mich an dieser stelle gerade nur wie ich INSERT INTOS mit verschiedenen Tabellen die mit der INSERT-INTO-Tabelle mit Fremdschlüsseln verbunden sind miteinbeziehe. Es soll ja nur bei dem "Berechtigten" reingeschrieben werden der sich mit Username und Passwort angemeldet hat.
Es muss irgendwie ein SELECT WHERE der Anmelde-Information und des betreffenden Dokuments mit meinem INSERT INTO verbunden werden.
Vielleicht so mit 2 SELECT WHERES? =>
INSERT INTO Unterschrift (Comment)
VALUE ("Text aus Eingabefeld")
SELECT * FROM Berechtigte
WHERE Username = Wert hinter Anmelde-Bestätigungsknopf
SELECT * FROM Dokument
WHERE Referenz zu Dokument = Wert hinter dem Drop-Down-Menü
Geht das so in etwa oder bin ich komplett auf dem falschen Weg?
Viele Grüße
ich muss zur Beschleunigung eines Prozesses einen Unterschriftenprozess automatisieren.
Das heißt Dokumente werden zur Zeit zu Fuß zu den Verantwortlichen gebracht, sodass diese dieses Dokument unterzeichnen können. Das soll mit Hilfe einer Web-Anwendung automatisiert werden.
Also Berechtigte Personen können mehrere Dokumente (für die sie berechtigt sind) unterzeichnen (JA/NEIN-boolsch) und andersrum kann ein Dokument von einer oder mehreren Personen unterschrieben werden. Wir haben also "m" "Berechtigte" zu "m" "Dokumenten". Wir brauchen also eine Verbindungstabelle die von "Berechtigte" und "Dokumente" die Schlüssel nimmt. Diese Tabelle nennen wir auch direkt "Unterschriften". So haben wir also nur 3 Tabellen.
Nun wollte ich meine Datenbank-Manipulationen und Selects mit meinen "Eingabe-Knöpfen" verbinden. Da ich wenig Ahnung von PHP habe und überhaupt noch nicht weiß welches Programm überhaupt dazu in Frage kommt (vlt. ein bestimmter Formular-Generator oder ein anderes Programm....), muss ich nur ein Konzept entwickelt: Also die SQL-Logik hinter den Eingabefeldern beschreiben und das Frontend in einer Power-Point-Präsentation zeigen.
Das Front-End sieht in etwas so aus, dass ich mich erst einmal anmelden muss (Username/Passwort). Diese 2 Attribute sind in der Tabelle "Berechtigte" definiert. Dann kann ich aus einem Dropdown-Menü das betreffende Dokument (liegt in einer Dokumentenmanagement-Software) auswählen und es mit einem Klick auf einen Knopf "Signieren" signieren und außerdem einen Kommentar in ein Textfeld schreiben. Zusätzlich zu signieren müssen noch 3 weitere Knöpfe anklickbar sein: "approved", "rejected", "in process". Man muss also die 3 eben erwähnten Optionen und das Kommentarfeld signieren. Fragt mich nicht warum. Wird so erwünscht.
Ich hab ein Relationship-Diagramm der Tabellen im Anhang.
Nun zur SQL-Logik hinter den Feldern, die ich beschreiben soll. Bin mir da sehr unsicher.
a) Das Auswahlfeld des Dokuments ist einfach:
SELECT Referenz zu Dokument FROM Dokument
Die Auswahl wäre dann in der Variablen hinter dem Auswahlfeld abgespeichert.
b) Das schwierige is der Knopf "Signieren" mit dem ich alle Eingaben der Maske irgendwie in die Datenbank und nur zum jeweiligen "Berechtigten" schreiben muss.
Es ist klar, dass dieser Knopf verschiedene INSERT INTOS machen muss:
INSERT INTO Unterschrift (Comment)
VALUE ("Text aus Eingabefeld");
AND
INSERT INTO Unterschrift (Signed?)
VALUE ("Wert der hinter dem Knopf "Signieren" liegt");
Ich frage mich an dieser stelle gerade nur wie ich INSERT INTOS mit verschiedenen Tabellen die mit der INSERT-INTO-Tabelle mit Fremdschlüsseln verbunden sind miteinbeziehe. Es soll ja nur bei dem "Berechtigten" reingeschrieben werden der sich mit Username und Passwort angemeldet hat.
Es muss irgendwie ein SELECT WHERE der Anmelde-Information und des betreffenden Dokuments mit meinem INSERT INTO verbunden werden.
Vielleicht so mit 2 SELECT WHERES? =>
INSERT INTO Unterschrift (Comment)
VALUE ("Text aus Eingabefeld")
SELECT * FROM Berechtigte
WHERE Username = Wert hinter Anmelde-Bestätigungsknopf
SELECT * FROM Dokument
WHERE Referenz zu Dokument = Wert hinter dem Drop-Down-Menü
Geht das so in etwa oder bin ich komplett auf dem falschen Weg?
Viele Grüße
Anhänge
Zuletzt bearbeitet: