MySQL Mehrere REFERENCES zu verschiedenen Tabellen

slimox

Mitglied
Hallo zusammen,

Folgendes möchte ich machen. Es gibt eine Tabelle Texte:
SQL:
CREATE TABLE `texte`(
   text_id INT NOT NULL AUTO_INCREMENT,
   sonstige_id INT DEFAULT 0,   sonstige_type varchar(20),
   text TEXT,
sprache varchar(20),
   PRIMARY KEY ( text_id )
);
In dieser Texte Tabelle werden alle Bezeichnungen in verschiedenen Sprachen gespeichert. Diese Bezeichnungen stammen aus vielen verschiedenen Tabellen. Es gibt ca. 10++ verschieden Sprachen, daher möchte ich es nicht mit spalten pro Tabelle Abbilden, sondern in einer globalen Texte Tabelle. Die Texte-Tabelle ist natürlich am Schluss viel umfassender jedoch braucht es diese Angaben nicht für die Lösung von meinem Problem.

Wie kann ich die Spalte sonstige_id mit verschiedenen Tabellen mit Relationen verbinden? Wir stellen uns vor, es gibt ein Produkte-Tabelle. Das Produkt Apfel hat die ID "produkte_id" mit dem Wert "1000".
Das würde also einen Eintrag wie folgt geben:
PHP:
array('sonstige_id'     => 1000,
      'sonstige_type'   => 'produkte',
      'text'            => 'kkname',
      'text_value'      => 'Apfel');

Das bedeutet, in der Spalte 'sonstige_id' ist irgend eine ID von einer anderen Tabelle und in der Spalte 'sonstige_type' ist die Bezeichnung welcher Tabelle.

Wenn jetzt z.B. ein Produkt gelöscht wird, möchte ich, dass über
SQL:
ON DELETE CASCADE ON UPDATE CASCADE;
in der Texte-Tabelle alle Zeilen welche mit der ID und Type übereinstimmen automatisch angepasst werden. Ist das möglich?! :)

Um jeden Tipp sehr Dankbar!
 
Du kannst keine saubere Refernez setzen. Ist aber mMn auch nicht wichtig.

Du musst beim löschen eines Produktes ein Löschbefehl an die texte tabelle senden. Du kannst auch hinter die Produktetabelle ein Trigger setzen, der automatisch auf Aktionen innerhalb der produkte Tabelle reagiert und die Daten in der Texte-Tabelle aktuell hält
 

Neue Beiträge

Zurück