Anzeige:
Ergebnis 1 bis 11 von 11

Thema: MySQL und löschweitergabe??

  1. #1
    Registrierter Benutzer
    Registriert seit
    12.11.2000
    Beiträge
    63

    MySQL und löschweitergabe??

    hi,

    kleine frage, ich kenn von Access (muss ich leider von Arbeit aus kennen) und Oracle (nicht schlecht, aber teuer und groß) das die eine löschweitergabe und änderungsweitergabe haben.

    nun die frage, kann das auch MySQL?? wenn ja, dann lieb ich es.

    bin für jede antwort, tip, idee dankbar.

    gruß

  2. #2
    Registrierter Benutzer Avatar von lolli
    Registriert seit
    20.09.2000
    Beiträge
    166
    der begriff "löschweitergabe/änderungsweitergabe" ist mir ehrlich gesagt völlig fremd. vielleicht kannst du es kurz erklären. so besteht vielleicht eher die möglichkeit, das jemand mehr darüber weiss. unter umständen heisst dieses feature ja auch in mysql nur anders...

    oliver

  3. #3
    Registrierter Benutzer
    Registriert seit
    12.11.2000
    Beiträge
    63
    gut ich versuchs.

    2 tabellen:

    1. tabelle:

    id_firma
    name
    strasse
    ...

    2. tabelle

    id_firma
    id_mitarbeiter
    name
    strasse
    ...

    erklärung löschweitergabe:

    die beziehung der beiden tabellen ist ja ersichtlich. also nehmen wir an, ich lösche in der 1. tabelle eine firma, dann wird bei oracle (so ich das eingestellt habe) in der 2. tabelle automatisch die mitarbeiter gelöscht.

    erklärung änderungsweitergabe

    nehmen wir an aus irgendeinem grund, ändert sich die id_firma in der 1. tabelle, dann werden auch alle id's in tabelle mit geändert.

    sowas kann ich oracle machen lassen und muss nicht selbst dafür sorgen.

    nun die frage, geht dies auch mit MySQL??

    hoffe die erklärung ist logisch.

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.06.2001
    Ort
    Never Never Land
    Beiträge
    17
    Es geht musste aber mit "Hand" machen
    zb das du beiden einträgen in den tables die gleiche id zuordnest und wenn dann
    die firma gekilled wird löscht er automatisch aus dem anderen table den mitarbeiter

    mysql_query("delete from table1 where id1='$killid'");
    mysql_query("delete from table2 where id2='$killid'");
    echo mysql_error();

    musst halt beim eintragen die werte richtig setzen viel spass

  5. #5
    Registrierter Benutzer
    Registriert seit
    12.11.2000
    Beiträge
    63
    @FaWeY

    genau dies mach ich scon die ganze zeit. unter oracle bin ich gewohnt nur:

    mysql_query("delete from table1 where id1='$killid'");

    zu machen und in table2 löscht oracle selbst. auch access kann dies auch wenns von microdoof ist, aber dies vermiss ich bei mysql.

    gut dies ist ein minibeispiel, da kann ich es verschmerzen.

    aber ich hab zum beispiel ein projekt, da zieht sich die projekt_id durch 50 tables. wenn ich ein projekt lösche, hab ich kein bock 50 mal ein sql-statement abzuschicken. ausserdem könnte sowas wirklich der server übernehmen. wozu hat man den schließlich??

    gruß.

  6. #6
    Registrierter Benutzer Avatar von lolli
    Registriert seit
    20.09.2000
    Beiträge
    166
    das sehe ich ein. aber wie ist es zum beispiel, wenn du eben nur in einer tabelle diese daten löschen willst? dann verschwinden alle anderen auch? so ganz vernünftig ist das aber auch nicht!!! eher gefährlich.
    wenn du ein programm oder skript baust, macht es ja eh nur einmal aufwand, diese tabellen festzulegen. nur bei der manuellen anpassung ist dann wohl viel schreibarbeit notwendig....

    oliver

  7. #7
    Registrierter Benutzer
    Registriert seit
    12.11.2000
    Beiträge
    63
    hi,

    ähh ich seh das anders als du lolli. wenn ich etwas in der haupttabelle lösche, wozu sollte ich in den unteren tabellen die schlüssel mit den daten aufheben, wenn es den schlüssel in meiner z.b. projekttabelle nicht mehr gibt. sinnloser datenmüll. dazu ist eine löschweitergabe gut.

    gut wie du schon sagst, ich kann es einmal schreiben und das script macht das schon. aber der verkehr zwischen client und server ist sinnlos hoch, wenn das DB-System dies von selbst erkennen würde. ich müsste in einem großen projekt 50 mal ein delete abschicken. das script dauert dann länger und der user wartet. wenn ich es einmal tue, verkürzt sich die wartezeit des users und der netzwerkverkehr minimiert sich.

    meiner meinung nach, kann sowas echt der server übernehmen. wie seht ihr das?

    gruß.

  8. #8
    Registrierter Benutzer Avatar von lolli
    Registriert seit
    20.09.2000
    Beiträge
    166
    wenn die daten nur noch müll ergeben, ist es zweifellos günstiger, wennder server die entsprechenden beziehungen automatisch löscht.
    (den fall den ich vor augen hatte ist aber so gedacht gewesen, das eben nicht die "oberste ebene" gelöscht wird, sondern eine der unteren....).
    ansonsten kann ich die eigentlich nur recht geben: wenn ein referenzobjekt gelöscht wird, sollten alle anderen beziehungen geprüft auf konsistenz werden. so könnte man "versehentliche" versäumnisse vermeiden....

    olli

  9. #9
    Registrierter Benutzer
    Registriert seit
    12.11.2000
    Beiträge
    63
    genau das mein ich ja, das die kinddaten automatisch gelöscht werden, wenn der elternteil gelöscht wird. sowas könnte wie gesagt der server übernehmen.

    wie es scheint gibts das wohl net in mysql. :-((((((( *heul*

  10. #10
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    die mysql ab der version 4.1 soll zumindest trigger unterstützen (habe ich gelesen) damit könntest du solche dinge regeln...

    wird aber wohl noch ein weilchen dauern

    das problem ist, das mysql dafür viellecht nicht die richtige db ist. mysql ist optimal um schnelle abfragen zu realisieren ohne dabei den ganzen verwaltungsoverhead den transkationsverwaltung, referenzielle integrität usw. mit sich rumzuschleppen. vielleicht postgres ?

    oder eine andere variante, die ich auch in einer applikation einsetze ist folgende. ich habe ein perlscript geschrieben, das zyklisch läuft und inkonsistenzen klärt (falls durch fehlerhaftes löschen welche auftreten sollten)
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  11. #11
    Registrierter Benutzer
    Registriert seit
    04.08.2001
    Ort
    Dresden
    Beiträge
    13
    Das ganze Thema bezieht sich doch eigentlich nicht auf sql abfragen sondern auf die einrichtung und erstellung der erforderlichen tabellen sowie die Beziehungen derer zueinander.
    Leider unterstützt mysql diese beziehungen meines wissens nach noch nicht.
    Lies mal unter:
    http://www2.little-idiot.de/mysql/mysql-45.html
    nach.
    Alles klar?
    eric
    cu ;-)

    www.eric-nordmann.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •