Referentielle Integrität unter MySQL 5.0

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Referentielle Integrität unter MySQL 5.0

    Ich habe eine Frage zu MySQL 5.0. Und zwar habe ich eine Datenbank mit mehreren Tabellen.
    Jetzt möchte ich, wenn ich in einer Tabelle einen neuen Datensatz anlege, dass automatisch auch in anderen Tabellen ein Eintrag erstellt wird.

    Natürlich könnte ich beim Erstellen des Datensatzes auch selbst per Hand den oder die anderen Datensätze erstellen. Aber geht das auch automatisch?

    Vielleicht mal ein Beispiel:

    PHP-Code:
    Tabelle 'user'                                        Tabelle 'daten'
    +-------+---------------+-----------+       +-------+---------------+-----------+
    |  
    ID   |   username    passwort  |       |  ID   |   adresse     telefon   |
    +-------+---------------+-----------+       +-------+---------------+-----------+
    |  
    0    |   user1       abcd      |  -->  |  0    bahnstr3    012-456   |
    +-------+---------------+-----------+       +-------+---------------+-----------+

    ID Primärschlüssel 
    Wird jetzt in 'user' ein neuer Datensatz angelegt, soll in 'daten' mit der gleichen ID ein Leereintrag (oder mit Defaultwerten) angelegt werden.
    Wenn ich in der Tabelle 'user' den User lösche, soll dann auch in der Tabelle 'daten' die entsprechende Zeile entfernt werden.
    Ist dies in MySQL möglich oder muss ich die Einträge per Hand vornehmen?

    Wäre für einen Hinweis oder Hilfe dankbar.

  • #2
    Das mußt von Hand machen.

    Kommentar


    • #3
      http://dev.mysql.com/doc/refman/5.0/...e-trigger.html

      Kommentar


      • #4
        Vielen Dank für den Hinweis mit den Triggern. Ist ja eine ganz neue Entwicklung.
        Hoffentlich hat mein Provider schon MySQL 5.0.2
        Zuletzt geändert von AdamP; 09.07.2007, 13:40.

        Kommentar


        • #5
          Original geschrieben von AdamP
          Vielen Dank für den Hinweis mit den Triggern. Ist ja eine ganz neue Entwicklung.
          Hoffentlich hat mein Provider schon MySQL 5.0.2
          Hoffentlich gibt er dir das benötigte SUPER-Recht was man dafür braucht - all-inkl gibt das nicht heraus und 5.1 wollen sie nicht installieren weil es Beta ist

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            wenn man schon komplizierte Sachen macht, dann ist IMHO ein eigener Server ohnehin besser. Rootserver kosten heutzutage auch nicht mehr die Welt.

            Kommentar


            • #7
              Original geschrieben von asp2php
              wenn man schon komplizierte Sachen macht, dann ist IMHO ein eigener Server ohnehin besser. Rootserver kosten heutzutage auch nicht mehr die Welt.
              Ein Projekt ist ja nicht unbedingt kompliziert, nur weil man mehrere Tabellen gleichzeitig editieren möchte um die Daten konsitent zu halten.
              Außerdem muss ich mich bei einem Root-Server selbst um die Sicherheit, Patches, Updates etc. kümmern.
              Solange ich mit dem Projekt nicht meinen Lebensunterhalt verdiene, ist es mir das nicht wert, da noch extra Arbeit reinzustecken.
              Und ein managed Rootserver ist auch nicht gerade günstig, wenn man bedenkt, dass man jede menge Webspace mit PHP, MySQL-Datenbanken und sehr viel bis unlimited Traffic schon für knap 5 Euro bekommt.

              Dann mache ich es doch lieber "per Hand". So kompliziert ist es ja nicht, nur halt immer ein paar Zeilen mehr Code.

              Danke für die Hilfe!

              Kommentar


              • #8
                Trigger gehören nur bei mysql zu der Ecke "kompliziert" - und die Implementation mit dem SUPER-Recht war ja mal wieder typisch ... manchmal hasse ich mysql

                Mit "eigener Server" kann auch ein eigener VServer gemeint sein - da bietet z.B. server4you.de für 9€/Monat einen an - und das ist eventuell zwar mehr Arbeit, aber ggf. billiger als ein Webspace-Paket mit allen möglichen Zusätzen (die natürlich alle Aufschlag auf den Preis bedeuten...)

                Bei kleinen Projekten oder Neuprogrammierungen kann man DB-Features idT emulieren, aber irgendwann erreicht man den Punkt wo das eine sinnlose Idee ist und dann blickt man auf postgresql und wünscht sich, dass das in irgendeinem seiner Projekte nutzbar wäre *_*
                Oder auch irgendeine andere Datenbank, in Sachen Features suckt mysql echt vom feinsten... _-_

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar

                Lädt...
                X