Zitat von blueavenue
Beitrag anzeigen
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
-
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.
-
Zitat von blueavenue Beitrag anzeigenWieso 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?
Zitat von blueavenue Beitrag anzeigenAlso ziemlich unmöglich das es logisch Schwachsinn ist.
Kommentar
-
Zuletzt geändert von blueavenue; 12.03.2017, 22:25.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
-
Zitat von blueavenue Beitrag anzeigenDas 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.
Zitat von blueavenue Beitrag anzeigenIch habe Gruppenzugehörigkeiten im 1000er Bereich
Zitat von blueavenue Beitrag anzeigenweil 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.
Zitat von blueavenue Beitrag anzeigenMir 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.
Zitat von blueavenue Beitrag anzeigenEs ging nur um Sichtung in einer Tabelle und um Speicherung relevanter, fortlaufender Daten aufgrund fortlaufender ID's....
Kommentar
-
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
-
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 );
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 );
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
-
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
-
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
-
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
-
Zitat von Alpha Beitrag anzeigen1. Ist es garnicht möglich 2 gleiche IDs als Primary Key anzulegen.
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.
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
-
Zitat von blueavenue Beitrag anzeigenUnd 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
-
Zitat von blueavenue Beitrag anzeigenUnd danke an Matze1708, deine Lösung ist das was ich gesucht habe.
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
-
Zitat von blueavenue Beitrag anzeigenUnd danke an Matze1708, deine Lösung ist das was ich gesucht habe.
Oder du lässt dir per Abfrage immer eine zusätzliche ID erstellen, hier wird es aber schwieriger, deine Reihenfolge einzubehalten.
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
Kommentar