Ankündigung

Einklappen
Keine Ankündigung bisher.

Kann man ID's in der Datenbank ersetzen, um eine genaue Reihenfolge einzuhalten?

Einklappen

Neue Werbung 2019

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

  • #16
    Zitat von blueavenue Beitrag anzeigen
    Also ziemlich unmöglich das es logisch Schwachsinn ist.
    Natürlich ist das Schwachsinn! Wenn du mit dem 100er Bereich nicht mehr hinkommst, fängst du wieder von vorne an? Das ist sogar völliger Schwachsinn, den du da produzierst.

    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #17
      Zitat von blueavenue Beitrag anzeigen
      Wieso bitte schön ist das Schwachsinn, wenn ich eindeutige ID-Bereiche primär selbst erstelle und zuvor die ID-Bereiche in der MYSQL-DB gelöscht habe?
      Die Sache an sich, dass es "ID.Bereiche" gibt, die eine Bedeutung haben, ist schon Schwachsinn. IDs sind für sowas nicht da und wenn man sie dafür missbraucht, wird es früher oder später nur so Probleme hageln.

      Zitat von blueavenue Beitrag anzeigen
      Also ziemlich unmöglich das es logisch Schwachsinn ist.
      Du bist halt der einzige hier mit dieser Meinung. Entweder alle anderen Entwickler irren sich oder du hast was übersehen. Was ist wohl wahrscheinlicher?

      Kommentar


      • #18
        Das war nur ein Beispiel. Ich habe in 1000er Bereichen gearbeitet. Die Töpfe und Pfannen schlag dir auch mal aus dem Kopf. Es war nur ein Beispiel, damit es auch jeder versteht. Ich habe da auch Daten, die enden.
        Also die niemals mehr weitergeschrieben werden müssen. Es sind statische Daten! Daher brauche ich nur einige genaue ID-Bereiche. Es wird sich daran nie wieder etwas ändern.

        Ich habe Gruppenzugehörigkeiten im 1000er Bereich weil ich expliziet selbst noch an die Daten gelangen will und mir Tabellen gemacht, wo was zu finden ist. Und zwar so, dass ich dies auf dem Bildschirm sehe! Darum ging es.
        Mir ist die ID egal! Ich kann sie ja immer abrufen, sofern ich zugehörige Bereiche habe (z.b. Metall, Töpfe, Rund, bunt= zeige ID).
        Wenn ich was automatisiert suchen muss, weil eine Tabelle X*Y Lang und Breit ist und ich nicht die ID kenne oder auch den Titel oder sonst was, dann ist eine Zahlenlogik in einer Tabelle die Sinnvollste. Ich bin Mathematiker und kein ID-Guru.

        Es ging nur um Sichtung in einer Tabelle und um Speicherung relevanter, fortlaufender Daten aufgrund fortlaufender ID's....

        Ihr seid Programmierer, ich Mathematiker. Klar ist es euch Wurscht wo welche ID steht, Verstehe ich ja auch. ID's füllen nur Daten und sind jederzeit über ander Paramete abrufbar.
        Aber ich brauche halt als Mathematiker einen eindeutigen Bezug zu einer Zahl und Situation und einem Bereich.

        Aber zumindest konnte ich meine Datenbank so gestalten, wie ich es mir vorstellte. Das war mein Ziel. Unabhängig eurer programmierdingsbungs Gedanken.

        Und wenn ich euch tief in den Bereich Mathematik nehmen würde, würdet ihr vieles auch anders machen, als ich. Wo ich sagen würde: Wieso machst du das so?

        Kommentar


        • #19
          Zitat von blueavenue Beitrag anzeigen
          Das war nur ein Beispiel. Ich habe in 1000er Bereichen gearbeitet. Die Töpfe und Pfannen schlag dir auch mal aus dem Kopf. Es war nur ein Beispiel, damit es auch jeder versteht.
          Das ändert nichts daran.

          Zitat von blueavenue Beitrag anzeigen
          Ich habe Gruppenzugehörigkeiten im 1000er Bereich
          Dann mach richtige Gruppen und missbrauche nicht IDs dafür.

          Zitat von blueavenue Beitrag anzeigen
          weil ich expliziet selbst noch an die Daten gelangen will und mir Tabellen gemacht, wo was zu finden ist. Und zwar so, dass ich dies auf dem Bildschirm sehe! Darum ging es.
          Die Darstellung hat nichts damit zu tun, wie es gespeichert wird.

          Zitat von blueavenue Beitrag anzeigen
          Mir ist die ID egal! Ich kann sie ja immer abrufen, sofern ich zugehörige Bereiche habe (z.b. Metall, Töpfe, Rund, bunt= zeige ID).
          Wenn ich was automatisiert suchen muss, weil eine Tabelle X*Y Lang und Breit ist und ich nicht die ID kenne oder auch den Titel oder sonst was, dann ist eine Zahlenlogik in einer Tabelle die Sinnvollste. Ich bin Mathematiker und kein ID-Guru.
          Wenn du mit einer Datenbank arbeitest, dann solltest du auch verstehen, wie sie funktoniert. "Ich bin Mathematiker" ist da nur eine faule Ausrede um sich nicht mit Datenbanken beschäftigen zu müssen.

          Zitat von blueavenue Beitrag anzeigen
          Es ging nur um Sichtung in einer Tabelle und um Speicherung relevanter, fortlaufender Daten aufgrund fortlaufender ID's....
          Du drehst dich immer wieder um den selben Gedankenfehler. Eine ID ist was anderes, als du denkst. Du missbrauchst sie nur für deine Zwecke. Aber wenn man etwas missbraucht, dann ist es nur eine Frage der Zeit, bis einem das um die Ohren fliegt.

          Kommentar


          • #20
            Eine ID die nie vorhanden, geboren wurde, kann man nicht missbrauchen!. Meine Daten sind statisch. Es wird sich daran nichts mehr ändern. Es werden keine neuen Primary ID benötigt. Ansonsten würde ich euch allen Recht geben, wenn dauernd neue Daten eingespeist werden müssten. Dies ist nicht der Fall. Die Daten sind einmalig zu speichern und für immer existent.

            Kommentar


            • #21
              Vieleicht ist Dir die Bedeutung einer sogenannten ID in der Datenbank nicht klar?

              ID ist eine Abkürzung für Identifikator und bezeichnet ungangssprachlich die Spalte auf der der Primärschlüssel-Index der Tabelle liegt. Also ein Kennzeichen anhand dem man einen Datenbankeintrag !!eindeutig!! erkennen kann.

              Jetzt kommst Du und sagt Du brauchst eindeutige IDs (was ohnehin immer innerhalb einer tabelle gegeben sein muss) aber willst diese Ändern. Ihnen also Ihre Eindeutigkeit nehmen. Das passt nicht zusammen.

              Eindeutig beutet in der Datenbank und bei Dir auch in der Webanwendung das die Eindeutigkeit in 100 Tagen nicht ohne driftigen Grund aufgehoben werden sollte. Daran hängen u.a. auch so Dinge wie Suchmaschinen die Seiten schlechter bewerten bei Denen Inhalte ihre URLs wechseln. Warum das so ist sollte nach kurzem Nachdenken klar werden.

              Also erstmal keine Gute Idee sowas zu machen.

              Als einen driftigen Grund würde ich z.B. ein grundlegendes Redesign der Anwendung sehen…

              Prinzipiell wäre eine von vielen Möglichkeiten:

              Alle Datensätze auslesen, Tabelle löschen, Tabelle neu anlegen (alternativ auch komplettes leeren und zurücksetzen der Sequenzen) Daten wieder reinschreiben und die Automatische Vergabe (AUTO_INCREMENT oder gleichwertiges) von IDs das DBMS erledigen lassen. Wie das für Dein genutztes DBMS geht verrät die dessen Doku.

              Allerdings hast Du wirklich ein DB-Fehldesign bzw. willst Du eine ID für etwas nutzen für was diese nicht vorgesehen ist.

              Mal als Beispiel:

              Code:
              CREATE TABLE
                 items
              (
                 item_id SERIAL NOT NULL PRIMARY KEY,
                 item_name CHARACTER VARYING(64) NOT NULL UNIQUE
              );
              
              CREATE TABLE
                    categories
                 (
                    cat_id SERIAL NOT NULL PRIMARY KEY,
                    cat_name CHARACTER VARYING(64) NOT NULL UNIQUE
                 );
              
              CREATE TABLE
                    item_category_relations
                 (
                    ic_rel_id SERIAL NOT NULL PRIMARY KEY,
                    ic_rel_item_id INTEGER NOT NULL,
                    ic_rel_cat_id INTEGER NOT NULL
                 );
              
              CREATE UNIQUE INDEX
                    item_category_relations_ids_uindex
                 ON
                    item_category_relations ( ic_rel_item_id, ic_rel_cat_id );
              die Tabelle 'items' würde Deiner Tabelle entsprechen. Die anderen beiden müstest Du erstellen (namensvergabe anpassen an Deine konventionen.) Ist PostgreSQL sieht aber in anderen SQL dialekten ähnlich aus.

              Mal mit exemplarischen Daten gefüllt:

              Code:
              INSERT
                 INTO
                    items
                 ( item_id, item_name )
                 VALUES
                    ( 1, 'Topf mit Henkel' ), ( 2, 'Gußpfanne ø600mm' ), ( 3, 'Topf ohne Henkel' ), ( 4, 'Gußpfanne ø800mm' ),
                    ( 12, 'Bräter mit Glasdeckel' ), ( 190, 'Milch-Kochtopf 1 Liter' ), ( 300, 'Pfanne flach' ),
                    ( 350, 'Pfanne hoch' ), ( 500, 'Kleiner Topf' ), ( 1024, 'Pfanne zum verhauen' );
              
              INSERT
                 INTO
                    categories
                 ( cat_name )
                 VALUES
                    ( 'Kochtöpfe' ), ( 'Pfannen' );
              
              INSERT
                 INTO
                    item_category_relations
                 ( ic_rel_item_id, ic_rel_cat_id )
                 VALUES
                    ( 1, 1 ), ( 3, 1 ), ( 190, 1 ), ( 500, 1 ), ( 2, 2 ), ( 4, 2 ), ( 12, 2 ), ( 300, 2 ), ( 350, 2 ), ( 1024, 2 );
              Läst sich super nach Kategorien auswählen (1 = Kochtöpfe, 2 = Pfannen)

              Code:
              SELECT
                    item_id,
                    item_name
                 FROM
                    items
                 LEFT JOIN
                       item_category_relations
                    ON item_id = ic_rel_item_id
                 LEFT JOIN
                       categories
                    ON
                       ic_rel_cat_id = cat_id
                 WHERE
                    cat_id = 2;

              Kommentar


              • #22
                Wow danke Messier 1001 für deine Arbeit, aber ich hab mein Problem ja selbst schon gelöst, auch wenn die Programmierer hier einem Mathematiker noch nicht ganz trauen!

                Eines aber habe ich gesehen und gemerkt- Beide Fraktionen haben eines gemeinsam: Logisch-Anaylistisches Denken1

                Kommentar


                • #23
                  Das was du vorhast ist so nicht praktikabel. Ich gebe dir einen Tipp.
                  Las die ID´s wie sie sind. die Kannst du verwenden um Beziehunen zwischen Tabellen herzustellen. Für das was du haben möchtest, nimmst du dir eine weitere Spalte in der Tabelle, dort fügst du deinen Index ein, wie du ihn brauchst.

                  Oder du lässt dir per Abfrage immer eine zusätzliche ID erstellen, hier wird es aber schwieriger, deine Reihenfolge einzubehalten.

                  Kommentar


                  • #24
                    Nutze eigene ID /Bezeichnungen für Produktgruppen und normalsiere deine DB sauber.

                    Und das hat mit der id die die DB vergibt und den Datensatz eindeutig identifiziert (= dem Primärschlüssel) NICHTS zu tun! Vom Primärschlüssel lässt du einfach immer die Finger.

                    http://www.peterkropff.de/site/mysql/normalisierung.htm

                    http://www.sqldocu.com/nine/normalform1.htm
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #25
                      1. Ist es garnicht möglich 2 gleiche IDs als Primary Key anzulegen.
                      2. sind ID eindeutige Referenzen für Fremdschlüssel anderer Datensätzen, es sein denn die gesamte Datenbank besteht nur aus einer Tabelle.
                      3. Falls es mehrere Tabellen sind, ist die Datenbank spätestens jetzt Kaputt und wird auf Kurz oder lang Probleme machen.

                      Wenn ein Arbeitgeber erfährt, dass sein Angestellter SW sowas macht kann er direkt gehen und hoffen dass die Klage nicht in die Millionen gehen.

                      OT: Aber wenn ich den Diskussionsverlauf so ansehe will uns hier jemand nur Verarschen, denn so dumm kann man eigentlich kaum sein.
                      bitcoin.de <- Meine Freelancerwährung

                      Kommentar


                      • #26
                        Zitat von Alpha Beitrag anzeigen
                        1. Ist es garnicht möglich 2 gleiche IDs als Primary Key anzulegen.
                        Lies mal meine Frage richtig durch. Ich habe nie gesagt das ich 2 gleiche ID's als Primary Key anlegen will. Anscheinende hast du mein
                        Problem nicht verstanden.

                        Zitat von Alpha Beitrag anzeigen

                        OT: Aber wenn ich den Diskussionsverlauf so ansehe will uns hier jemand nur Verarschen, denn so dumm kann man eigentlich kaum sein.
                        Schreibt derjenige, der unproduktiven Beiträge hier im Forum verfasst.

                        Immer erst alles lesen, dann nachrfragen wenn du was nicht verstehst, dann evtl. eine Meinung bilden!

                        Und danke an Matze1708, deine Lösung ist das was ich gesucht habe.

                        Kommentar


                        • #27
                          Ich würde an Deiner Stelle nicht so das Maul aufreißen! Alpha hat in gewisser weise Recht. Alle wirklich hIlfreichen Tipps ignorierst Du geflissentlich. Was soll man dazu noch sagen?

                          Kommentar


                          • #28
                            Zitat von blueavenue Beitrag anzeigen
                            Und wenn ich euch tief in den Bereich Mathematik nehmen würde, würdet ihr vieles auch anders machen, als ich. Wo ich sagen würde: Wieso machst du das so?
                            Wenn wir bzw. ich (ka ob es für alle gilt) dich aber etwas fragen würde, dann würde ich deine Vorschläge auch annehmen, eben weil dies dein Bereich ist und du dich da besser auskennst. Ich würde dann nicht weiterhin versuchen es auf meine Weise zu lösen, sondern mich von dir belehren lassen.

                            Kommentar


                            • #29
                              Zitat von blueavenue Beitrag anzeigen
                              Und danke an Matze1708, deine Lösung ist das was ich gesucht habe.
                              Du füllst nun eine neue Spalte mit einen eigenen Index( ich nenn das jetzt mal so), den du händisch pflegst um daraus irgendwelche Bereiche von - bis dann mühsam zu ermitteln?
                              Ich bin mir nicht sicher, ob ich das (dein) Problem richtig erfasst habe, zumal dein geliefertes Beispiel ja auch nicht den echten Anwendungsfall widerspiegelt.
                              Über den mehrfach gemachten Vorschlag deinen Einträgen Gruppen zuzuordnen hast du mal nachgedacht?
                              In der jeweiligen Gruppe kannst du dann neben einer Bezeichnung auch weitere Informationen unterbringen, wie z.B. einen Bereich.

                              Kommentar


                              • #30
                                Zitat von blueavenue Beitrag anzeigen
                                Und danke an Matze1708, deine Lösung ist das was ich gesucht habe.
                                Welche aus dem Post #23?

                                Oder du lässt dir per Abfrage immer eine zusätzliche ID erstellen, hier wird es aber schwieriger, deine Reihenfolge einzubehalten.
                                Diese hier? Das würde ich nicht machen.

                                Hast du dir denn im Beitrag darunter die beiden verlinkten Seiten zur Normalisierung angesehen?
                                The string "()()" is not palindrom but the String "())(" is.

                                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                                PHP.de Wissenssammlung | Kein Support per PN

                                Kommentar

                                Lädt...
                                X