Mailinglisten-Archive |
> Hallo zusammen > > Damit keine daten in meiner mysql datenbank gelöscht werden > die nicht geöscht werden dürfen muss ich alle > id der personen über ca 10 tabellen selectieren. Kann ich das > mit einem select machen oder sind dazu mehrere nötig? > > Falls nein wie muss ich das ganze selectieren? > im zweifelsfall reicht eins, ggf mit 9 Zeilen LEFT JOIN aber vielleicht wird es klarer wenn Du etwas darüber sagst wie deine Datenbank aufgebaut ist, so ganz verstehe ich nämlich noch nicht was Du meinst. i.allg. tritt das Problem, dass man gewisse Datensätze nicht löschen darf auf, wenn Du zum Beispiel eine Mastertabelle mit den Stammdaten der Benutzer hast und dann diverse andere Tabellen die sich auf diese Benutzertabelle beziehen. Wenn Du dann einen Benutzer aus der Haupttabelle löscht hast Du u.U. in den anderen Tabellen Datensätze die ins leere greifen. Wenn das der Fall ist kannst Du natürlich alle Detailtabellen über die Benutzerid miteinander verknüpfen, prüfen ob Du einen oder mehr Datensätze erhälst bei denen die Benutzerid stimmt und wenn ja, dann darfst Du den Eintrag halt nicht löschen. Meist ist es in einem solchen Fall aber ohnehin nicht sinnvoll den Eintrag zu löschen - viel eleganter ist es oft sich eine ENUM - Spalte in die Tabelle anzufügen (is_User N/Y) und einfach nur diesen Wert zu setzen. Dann brauchst Du Dir darüber keine Gedanken zu machen, kannst auch später noch alte benutzerdaten nachvollziehen, ggf. einen alten Benutzer wieder reaktivieren etc... -- Mike Beck mikebeck_(at)_users.sourceforge.net
php::bar PHP Wiki - Listenarchive