DatabaseNoob
Neuer Benutzer
- Beiträge
- 3
Ja moin liebes Forum.
Ich benötige ein bisschen Hilfe und hoffe jemand kann mir helfen.
Ich bastel an einer Datenbank für ein Online-Spiele-Versandhaus (OSVH).
Die Datenbank soll anzeigen können welcher Kunde wann welches Spiel gekauft hat. Dazu sollen noch kritische Kundendaten (Bankdaten, Kreditkarte und PayPal) in verschiedenen Tabellen gespeichert werden.
Nun zu meinem Problem: Ich kriege es nicht hin die Fremdschlüssel einzufügen. Am liebsten würde ich dies mit dem ALTER TABLE Befehl machen.
Hier mein Code bisher:
Was habe ich falsch gemacht? Wahrscheinlich sehr viel. Bin leider noch kein Profi in Sachen MySQL.
Danke für jede Hilfe.
MfG ^^
Ich benötige ein bisschen Hilfe und hoffe jemand kann mir helfen.
Ich bastel an einer Datenbank für ein Online-Spiele-Versandhaus (OSVH).
Die Datenbank soll anzeigen können welcher Kunde wann welches Spiel gekauft hat. Dazu sollen noch kritische Kundendaten (Bankdaten, Kreditkarte und PayPal) in verschiedenen Tabellen gespeichert werden.
Nun zu meinem Problem: Ich kriege es nicht hin die Fremdschlüssel einzufügen. Am liebsten würde ich dies mit dem ALTER TABLE Befehl machen.
Hier mein Code bisher:
Code:
CREATE DATABASE IF NOT EXISTS OSVH;
USE OSVH;
SET FOREIGN_KEY_CHECKS = 0;
CREATE TABLE IF NOT EXISTS Spiel (
SpieleNr SERIAL,
Titel VARCHAR(100),
Preis INTEGER,
FSK INTEGER,
Konsole VARCHAR (25),
GenreNr INTEGER,
HerstellerNr INTEGER,
PRIMARY KEY (SpieleNr)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS Kunde (
KundenNr SERIAL,
KName VARCHAR(50),
Geburtsdatum DATE,
E_Mail VARCHAR (50),
Strasse_Nr VARCHAR (50),
PLZ INTEGER,
Ort VARCHAR (50),
PayPal_Adresse VARCHAR (50),
KartenNr INTEGER,
IBAN VARCHAR (25),
PRIMARY KEY (KundenNr)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS Hersteller (
HerstellerNr SERIAL,
HName VARCHAR (50),
PRIMARY KEY (HerstellerNr)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS Kauft (
KundenNr INTEGER NOT NULL,
SpieleNr INTEGER NOT NULL,
Kaufdatum DATE,
Bezahlart VARCHAR (25),
PRIMARY KEY (KundenNr, SpieleNr)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS Genre (
GenreNr SERIAL,
GName VARCHAR (25),
PRIMARY KEY (GenreNr),
SpieleNr BIGINT UNSIGNED DEFAULT 1
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS Bankdaten (
IBAN SERIAL,
BName VARCHAR (30),
PRIMARY KEY (IBAN)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS Kreditkarte (
KartenNr SERIAL,
gültig_bis INTEGER(6),
CVV INTEGER (3),
PLZ INTEGER (5),
PRIMARY KEY (KartenNr)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS PayPal (
PayPal_Adresse SERIAL,
PRIMARY KEY (PayPal_Adresse)
) ENGINE = INNODB;
INSERT INTO Spiel (SpieleNr, Titel, Preis, FSK, Konsole, GenreNr, HerstellerNr) VALUES
(103, 'FuFA', 50, 1, 'PS4', 5, 8);
INSERT INTO Kunde (KundenNr, KName, E_Mail, Geburtsdatum, Strasse_Nr, PLZ, Ort, PayPal_Adresse, KartenNr, IBAN) VALUES
(65, 'Hans Moritz', 'Hansi01@live.de', 16011997, 'Credenstreet 25', 33624, 'Musterstadt', 'Hansi01@live.de', 0, 0);
INSERT INTO Hersteller (HerstellerNr, HName) VALUES
(880, 'EA');
INSERT INTO Kauft (KundenNr, SpieleNr, Kaufdatum, Bezahlart) VALUES
(953, 103, 2015-08-02, 'PayPal');
INSERT INTO Genre (GenreNr, GName) VALUES
(231, 'Sport');
INSERT INTO Bankdaten (IBAN, BName) VALUES
('DE65255145664545', 'Sparkasse');
INSERT INTO Kreditkarte (KartenNr, gültig_bis, CVV, PLZ) VALUES
(5666589855, 102016, 569, 32052);
INSERT INTO PayPal (PayPal_Adresse) VALUES
('Hansi01@live.de');
ALTER TABLE Spiel
ADD CONSTRAINT fkSpielGenre FOREIGN KEY (GenreNr)
REFERENCES Genre(GenreNr);
ALTER TABLE Spiel
ADD CONSTRAINT fk_Spiel_Hersteller FOREIGN KEY (HerstellerNr)
REFERENCES Hersteller(HerstellerNr);
ALTER TABLE Kunde
ADD CONSTRAINT fk_Kunde_paypal FOREIGN KEY (PayPal_Adresse)
REFERENCES PayPal(PayPal_Adresse);
ALTER TABLE Kunde
ADD CONSTRAINT fk_Kunde_Kreditkarte FOREIGN KEY (KartenNr)
REFERENCES Kreditkarte(KartenNr);
ALTER TABLE Kunde
ADD CONSTRAINT fk_Kunde_Bankdaten FOREIGN KEY (IBAN)
REFERENCES Bankdaten(IBAN);
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
Was habe ich falsch gemacht? Wahrscheinlich sehr viel. Bin leider noch kein Profi in Sachen MySQL.
Danke für jede Hilfe.
MfG ^^
Zuletzt bearbeitet von einem Moderator: