Vinzenz Mai: MySQL optimal benutzen

Beitrag lesen

Hallo Ruben,

Die Sprachen sollen nur die Vokabeln widerspiegeln.
Damit meine ich, dass es eine Sprache nur gibt, wenn es auch Vokabeln dieser Sprache gibt. Wenn alle Vokabeln einer Sprache gelöscht werden, soll es auch die Sprache nicht mehr geben.

das ist in meinen Augen suboptimal.
Ändere Deine Einstellung - und mach es bestenfalls umgekehrt.

Wenn eine Sprache gelöscht wird, dann soll es auch keine Vokabeln dieser Sprache
mehr geben. Die Stichworte dazu wurden bereits genannt: Referentielle Integrität
durchsetzbar mit

ON DELETE CASCADE

bei MySQL nur bei Verwendung der InnoDB-Engine.

Willst Du Deine derzeitige Strategie beibehalten, so kannst Du dies
datenbankseitig mit Triggern erledigen. Diese übernehmen die Prüfung, die Du
derzeit in der API machst und löschen gegebenenfalls die Sprache aus der zweiten
Tabelle.

Nein, dies ist meiner Meinung nach keine gute Idee und erst recht nicht "optimal".

Eine Sprache hat meiner Meinung nach nichts damit zu tun, ob Vokabeln, Wörter
dazu abgespeichert sind. Umgekehrt solltest Du erst Vokabeln einer Sprache
abspeichern, nachdem Du diese Sprache angelegt hast. Deine
Spaltenbezeichnungen lassen (möglicherweise zu Unrecht) auf eine suboptimale
Tabellenstruktur schließen. Ohne ein paar Beispieldatensätze, insbesondere
auch mit den vokabel- und sprachenspezifischen Feldern läßt sich das aber
nicht endgültig beurteilen.

Freundliche Grüße

Vinzenz