Ich habe eine ‚Look-up‘ Tabelle mit voreingestellten Werten (wurde darüber informiert, es als ENUM ist besser)Löscht MySQL Referenzen?
CREATE TABLE tbl_payment_type (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
description VARCHAR(25)
);
INSERT INTO tbl_payment_type
(description)
VALUES
('PAYPAL'),
('DEBIT CARD'),
('CREDIT CARD'),
('CASH ON DELIVERY');
nun jeder meiner Aufträge enthält eine Zahlungsart.
CREATE TABLE tbl_order (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
...
payment_type INT,
FOREIGN KEY(payment_type) REFERENCES tbl_payment_type(id)
) AUTO_INCREMENT = 1000;
ich derzeit MyISAM bin mit aber vielleicht InnoDB in Zukunft ausprobieren (ich bin nicht sicher, ob das die Frage betrifft).
Und schließlich, die Frage ist, wenn ich versuche, einen Datensatz von tbl_payment_type
zu löschen, wird dies dazu führen, dass MySQL automatisch alle Datensätze aus tbl_order
löschen, die diesen Zahlungstyp enthalten?
Okay dank versuchen. Ich schätze, ich bleibe dann einfach bei MyISAM. – Ozzy
Was ist der Sinn der Frage nach Fremdschlüsseln, wenn Sie eine Engine verwenden, die sie ignoriert? :) –
@ N.B. Hmmmm, als ich die DB auf Papier entworfen habe, habe ich natürlich eine relationale Datenbank erstellt. Als ich das in MySQL umwandelte, war mir nicht klar, dass FK standardmäßig nicht unterstützt wurde. Ich muss mehr lernen, bevor ich InnoDB benutze. Zumindest mit diesen Links wird es schnell wechseln, wenn ich es in Zukunft brauche. Wenn man sich den SQL-Quellcode anschaut, kann man besser nachvollziehen, was mit den verbleibenden FK-Beschränkungen passiert. – Ozzy