unXtremo
Ensign
- Registriert
- Feb. 2009
- Beiträge
- 228
Hallo zusammen,
ich entwerfe gerade einen Online Dienstplan.
Ich habe jedoch ein Problem bei der Datenbank Entwicklung.
meine Bisherige Datenbank Struktur:
Ich habe vor, dass die Aufträge mit der "a_id" aus der 2. Tabelle automatisch in den Dienstplan übernommen werden.
Bisher habe ich das nur manuell über folgenden Code hinbekommen:
Ich bin mir nicht sicher ob man dies auch über ein Verweis wie FOREIGN KEY machen kann.
Ich habe mich auch schon über JOIN Abfragen belesen, komme allerdings nicht auf den richtigen Ansatz.
Ich würde mich freuen wenn mir jemand einen Tipp geben könnte.
ich entwerfe gerade einen Online Dienstplan.
Ich habe jedoch ein Problem bei der Datenbank Entwicklung.
meine Bisherige Datenbank Struktur:
Code:
/**
* Mitarbeiter
*/
CREATE TABLE user (
u_id INT NOT NULL UNIQUE AUTO_INCREMENT,
vorname VARCHAR(50) NOT NULL,
nachname VARCHAR(50) NOT NULL,
mail VARCHAR(50) NOT NULL,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
u_status BOOLEAN NOT NULL DEFAULT 1,
statistik_mini INT NOT NULL DEFAULT 0,
PRIMARY KEY (u_id)
);
/**
* Kategorien
*/
CREATE TABLE kategorie (
kategorie_nr INT NOT NULL UNIQUE AUTO_INCREMENT,
kategorie_name VARCHAR(50) NOT NULL,
kategorie_tag VARCHAR(50) NOT NULL,
kategorie_ort VARCHAR(50) NOT NULL,
kategorie_uhrzeit TIME NOT NULL,
anzahl_mitarbeiter INT NOT NULL,
PRIMARY KEY (kategorie_nr)
);
/**
* Aufträge
*/
CREATE TABLE auftrag (
a_id INT NOT NULL UNIQUE AUTO_INCREMENT,
datum DATE NOT NULL,
kategorie INT NOT NULL,
PRIMARY KEY (a_id),
FOREIGN KEY (kategorie)
REFERENCES kategorie(kategorie_nr)
ON DELETE CASCADE
);
/**
* Dienstplan
*/
CREATE TABLE plan (
p_id INT NOT NULL UNIQUE AUTO_INCREMENT,
auftrag INT NOT NULL,
mitarbeiter VARCHAR(50) NOT NULL DEFAULT '',
a_status BOOLEAN NOT NULL DEFAULT 0,
PRIMARY KEY (p_id),
FOREIGN KEY (auftrag)
REFERENCES auftrag(a_id)
ON DELETE CASCADE
);
Ich habe vor, dass die Aufträge mit der "a_id" aus der 2. Tabelle automatisch in den Dienstplan übernommen werden.
Bisher habe ich das nur manuell über folgenden Code hinbekommen:
PHP:
// Datenbank einbinden
include('dbconnect.php');
// Aufträge in plan übernehmen
$sql_insert = "INSERT INTO plan(auftrag) SELECT a_id FROM auftrag";
$result_insert = mysql_query($sql_insert) OR die(mysql_error());
...
Ich bin mir nicht sicher ob man dies auch über ein Verweis wie FOREIGN KEY machen kann.
Ich habe mich auch schon über JOIN Abfragen belesen, komme allerdings nicht auf den richtigen Ansatz.
Ich würde mich freuen wenn mir jemand einen Tipp geben könnte.