Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Nested Sets mit Leeren Ästen und Blättern

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von jetwork, 17 November 2014.

  1. jetwork

    jetwork Fleissiger Benutzer

    Hallo Zusammen,


    Wie ihr von meiner früheren Fragen weiß, versuchen wir in unserer Firma eine geeignete Lösung für unsere hierarchische Datenbank finden.
    Jetzt haben wir neue Ideen für unseren Fall. In unsere Firma benutzen wir MySQL deswegen wollen wir Nested Sets benutzten. Ihr habt in diesem Forum auch so empfohlen weil Nested Sets keine Rekursive Abfragen braucht.
    Aber ein Nachteil von Nested Sets ist dass die Einfüge- und Entferne Anomalien sehr aufwendig sind und während Einfügen und Entfernen muss das Baum für alle Benutzer gesperrt und jedes Mal neustrukturiert werden. Unsere Datenbankbenutzer müssen aber in unseren Baum sehr oft neue Asten und Blätter hinzufügen, deswegen sind Nested Sets auch nicht sehr gut geeigtnet.
    Wir (Database Admins) haben die Idee gehabt in unseren Nested Set Baum einige Leere Asten und Blätter hinzuzufügen und falls nötig werden diese Asten und Blätter durch die Datenbankbenutzer gefüllt werden.

    Dadurch muss man nicht das Baum jedesmal neu strukturieren und die Strukture und links und rechts ids werden nicht verwirrend für die Benutzer sein.

    Ist das eine schlechte Idee?


    Danke im Voraus
     
    Zuletzt bearbeitet: 17 November 2014
  2. akretschmer

    akretschmer Datenbank-Guru

    In kurz: ihr wißt, daß ihr die falsche Lösung nutzt.


    Ich denke ja. Es löst ja das Problem nicht.
     
  3. Hony%

    Hony% Datenbank-Guru

    Das wirft das komplette Konzept hinter Nested Sets über den Haufen.

    Dann sind Nested Sets von Haus aus eher ungeeignet. In diesem Fall ist es sinnvoll, wenn auch ineffizient, die Rekursion in der abfragenden Anwendung zu implementieren.

    Die IDs dienen der Verwaltung und sollten dem Benutzer nicht angezeigt werden.

    Mittelfristig dürfte es euch günstiger kommen auf ein anderes DBMS zu migrieren.
     
  4. jetwork

    jetwork Fleissiger Benutzer

    Was ist eine Fasche Lösung? Nested Sets oder MySQL?
    Wenn du MySQL meinst. Ich will leider keinen Umstieg in ein anderes Datenbanksystem machen? Ein anderes Datenbanksystem wird auch irgendwo auch seine Schwachstellen haben.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Parse error.
     
    jetwork gefällt das.
  6. Hony%

    Hony% Datenbank-Guru

    Dir ist schon klar, dass sich damit sogar eine Excel-Tabelle als Datenbank begründen lässt?
     
  7. jetwork

    jetwork Fleissiger Benutzer

    Vielen Dank. Du meinst die Benutzer dürfen die IDs nicht sehen. Das heißt für alle Einfüge- und Löschanomalien soll ich MySQL Prozeduren hinzufügen?

    Die Anwender werden nur meine Prozeduren benutzen, werden Sie dadurch nicht verwirrend mit der Änderung dieser Rechts und Links IDs oder?
     
  8. Hony%

    Hony% Datenbank-Guru

    Die Verwaltung des Baums sollte vollständig im Hintergrund arbeiten. Der Benutzer selbst wird für gewöhnlich sowieso nicht wissen welche Zahlen er eingeben muss. Wenn der Baum mehr als 2-3 Äste mit je 2-3 Blättern hat ist normalerweise sowieso Schluss mit manuellen Änderungen. Das ist einfach nicht beherrschbar.
     
    jetwork gefällt das.
  9. jetwork

    jetwork Fleissiger Benutzer

    Ihr spricht zu philosophisch für mich :D
    Ich kann euch leider nicht so gut verstehen :(

    @akretschmer Parse Error heißt dass ich es falsch verstanden habe. Du hast nicht MySQL sondern Nested sets als eine falsche Lösung bezeichnet oder ?


    @Hony%
    Und Das heißt das MySQL an manche stellen so schwach wie Excel ist oder was?
     
    Zuletzt bearbeitet: 17 November 2014
  10. Hony%

    Hony% Datenbank-Guru

    Nein. Ich will dir das verdeutlichen.

    Meine persönliche Lieblingsdatenbank ist SQLite. SQLite ist ein sehr kompaktes System für lokale Datenbanken und beschränkt sich daher auf einen überschaubaren Funktionsumfang. Für viele Anwendungsfälle ist dieser Funktionsumfang aber völlig ausreichend. Jetzt gibt es aber auch Situationen in denen ich zum Beispiel eine Benutzerverwaltung oder gespeicherte Prozeduren benötige. Dann ist SQLite einfach nicht mehr geeignet weil das nicht zum Funktionsumfang gehört.

    In so einer Situation habe ich zwei Möglichkeiten. Entweder einen oder mehrere Workarounds bauen oder ein geeignetes DBMS wie zum Beispiel PostgreSQL benutzen. Oder, wenn es eine lokale Datenbank (unter Windows) bleiben soll ginge auch MS-SQL Compact.

    Wer nur einen Hammer hat, für den ist alles ein Nagel. ;)
     
  11. akretschmer

    akretschmer Datenbank-Guru

    Nein, auf "Ich will leider keinen Umstieg in ein anderes Datenbanksystem machen?". Und wenn MySQL die Frage ist, dann ist (meine) Antwort Nein.
     
  12. ukulele

    ukulele Datenbank-Guru

    Du meinst vermutlich MS SQL Express.

    Ich sage es bieten sich an:
    Postgre SQL
    MS SQL bzw. MS SQL Express
    Oracle

    Alle diese Datenbanken sind weit verbreitet und haben eigentlich keine Schwachstelle, die euch betreffen würde. Eine große Anwenderbasis sorgt für viele Lösungsvorschläge und Know-How. Alle bieten, im Gegensatz zu MySQL rekurisve Abfragen. PG ist die einzige Datenbank die hier völlig frei ohne Lizenzkosten eingesetzt werden kann.

    SQLite scheint mir ungeignet weil es den lokalen Fokus hat. Es mag andere geignete DBs geben die auch speziellere Eigenschaften haben und irgendwas toller können. Auf diese mag deine Aussage zutreffen.
     
  13. Hony%

    Hony% Datenbank-Guru

    Nein, ich meine schon Compact. ;)

    Die Version ist im Vergleich zu Express und natürlich der Pro-Variante eingeschränkt. Allerdings auch nur ein paar Megabyte groß. Compact ist ähnlich SQLite eine lokale Datenbank und legt sein Augenmerk auf hohe Integration für .NET-Programme.

    SQLite ist hier völlig ungeeignet. Schon alleine weil es keine Benutzerverwaltung gibt. Das ändert aber nichts daran, dass es sich dabei um meine persönliche Lieblingsdatenbank handelt die ich wenn erforderlich durch eine geeignetere ersetze.
     
  14. ukulele

    ukulele Datenbank-Guru

    Ah okay kenne ich noch nicht.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden