Warnung: "Existence of index"
Eddie
- datenbank
0 King^Lully0 Eddie0 King^Lully0 Frank (no reg)0 Cheatah
Hallo allerseits,
wieder mal eine Frage zum Datenbank-Entwurf! An den anderen Fragen bin ich noch dran, da melde ich mich nachher nochmal :-)
Ich habe jetzt gerade mal mein Model gecheckt, und das Tool wirft mir fuer jede Tabelle eine Warnung raus:
"Existence of index: A table should contain at least one column, one index, one key, and one reference. Add missing item to the definition of the table!"
Dabei sieht der Code folgendermaßen aus:
create table BACKLINK
(
PK_BACKLINK tinyint unsigned not null,
URL tinytext not null,
primary key (PK_BACKLINK)
)
type = MYISAM;
Und laut MySQL-Doku ist ein primary key ein Index: "Most MySQL indexes (PRIMARY KEY, UNIQUE, INDEX, and FULLTEXT)..."
Was habe ich also falsch gemacht?
Danke für eure Hilfe,
Eddie
wieder mal eine Frage zum Datenbank-Entwurf! An den anderen Fragen bin ich noch dran, da melde ich mich nachher nochmal :-)^
Yo! Mach das mal, Wir wollen ja wissen, obs gepasst hat.
"Existence of index: A table should contain at least one column, one index, one key, and one reference. Add missing item to the definition of the table!"
Loge.
Und laut MySQL-Doku ist ein primary key ein Index: "Most MySQL indexes (PRIMARY KEY, UNIQUE, INDEX, and FULLTEXT)..."
Was habe ich also falsch gemacht?
Wer haut den die Meldung raus? Der Server oder das QueryTool?
Zudem solltest Du - gerade bei einem einfachen CREATE - (aber antürlich immer ;) das Problem maximal isolieren, also bis zum Punkt: _Jetzt_ geht das und das bei folgender Fehlermeldung nicht.
Und ja, ein PK ist ein Index.
(18:34, dann geigte das Forum ab, ich versuchs später nochmal... ;)
Hi King^Lully,
wieder mal eine Frage zum Datenbank-Entwurf! An den anderen Fragen bin ich noch dran, da melde ich mich nachher nochmal :-)^
Yo! Mach das mal, Wir wollen ja wissen, obs gepasst hat.
Grad geschehen! Du siehst, ich komme langsam weiter ;-)
Wer haut den die Meldung raus? Der Server oder das QueryTool?
Das Modellierungs-Tool PowerDesigner: da gibt es eine "Check"-Funktion, und die meckert. Also noch bevor ich das Ganze an MySQL uebergebe.
Und ja, ein PK ist ein Index.
Wuerdest du also zu dem geposteten Code sagen, dass das eine korrekte, vollstaendige Tabellen-Definition fuer MySQL ist? Und dass ich die Fehlermeldung zu den Akten legen kann?
Eddie
Und ja, ein PK ist ein Index.
Wuerdest du also zu dem geposteten Code sagen, dass das eine korrekte, vollstaendige Tabellen-Definition fuer MySQL ist? Und dass ich die Fehlermeldung zu den Akten legen kann?
Ich räume ein kein MySQL-SQL zu programmieren, aber wenn das (verdammte ;) Query-Tool bzw. der (verdammte) Designer diese Warnmeldung raushaut, dann hat wohl dieser ein Problem, nicht Du.
Allerdings sind dann Seiteneffekte nicht auszuschliessen, also dass der Designer dann auch andere Probleme macht.
Hallo,
tja, wer weiss, was PowderDesigner da "checkt"? Du hättest die
Verwendung dieses Progrämmchens bereits in dem ersten Beitrag
erwähnen sollen.
Imho (auf den ersten Blick) fehlt bei dir das Schlüsselwort "CONSTRAINT".
Wenn du mit MySQL arbeitest, sollte deine erste Referenz das MySQL
Benutzerhandbuch sein. Zum Beispiel CREATE TABLE !
Eine gültige CREATE TABLE Anweisung sieht imho danach so aus:
CREATE TABLE test (
id INT,
feldA DATETIME,
CONSTRAINT test_pk PRIMARY KEY (id)
);
oder
CREATE TABLE test (
id INT PRIMARY KEY,
feldA DATETIME
);
Variante 2: Ist dieser PowderDesigner kein grafisches Tool mit
Klickibunti[tm] für die Erstellung von Tabellen? Wenn du da selbst
noch Hand anlegen musst und SQL schreiben musst, dann hat das
Tool doch seinen Zweck verfehlt, oder?
Kennt PowderDesigner eventuell ein "Reverse Engineering" Feature,
was aus bestehenden Tabellen ein SQL Script erzeugen kann? Wenn ja,
dann nutze es bitte und vergleiche dessen Output mit deinem Input.
Du machst also grundsätzlich mindestens 2 grobe Fehler:
Meine Empfehlung: Beseitige diese Probleme umgehend.
Grüsse, Frank
Variante 2: Ist dieser PowderDesigner kein grafisches Tool mit
Klickibunti[tm] für die Erstellung von Tabellen? Wenn du da selbst
noch Hand anlegen musst und SQL schreiben musst, dann hat das
Tool doch seinen Zweck verfehlt, oder?
Das erinnert mich an einen Java-Vortrag, den ich zum Thema "Programmierst Du noch oder modellierst Du schon?" erfahren habe:
http://www.sse.uni-due.de/wms/de/index.php?go=96#Mod6
Allerdings war der Vortrag ein anderer, es ging um Java-Modellierung. Will nicht wissen wie viele Entwickler da gelitten haben, das Produkt hiess:
J<irgendwas>
Weiss einer noch, was es gewesen sein könnte?
Hi, mir kommt bei <J>irgendwas primär der Borland JBuilder in den Sinn.
Hattest du jetzt an dem verlinkten Seminar teilgenommen oder an einem anderen welchen du dich nicht mehr zu erinnern vermagst?
Wenn ja, was sind deine Feststellungen zur Modellbasierten Softwareentwicklung?
Meine: Theoretisch für die Planung gut (also ich fahre gut mit dem Konzept), praktisch (zum Erzeugen von Sourcecode egal welcher couleur) zwecklos und es gibt bislang noch kein Tool welches den Prozess von Anfang bis Ende auch nur annähernd vollständig abdeckt.
Sparx EA deckt aus Dokumentationssicht den Teil der Modellierung (Planung) recht gut ab und setzt dabei auf Ummel. Aber es hakt generell beim Forward Engineering (was helfen mir 1000 leere Methoden???) des Source Codes und sonst bedarf es doch noch relativ viel Customizing für den gesamten Denkprozess (Modellbasierte Softwareentwicklung) drum herum.
Grüsse zum Abend
Frank
Hattest du jetzt an dem verlinkten Seminar teilgenommen oder an einem anderen welchen du dich nicht mehr zu erinnern vermagst?
Ich bin nicht sicher, das verlinkte Seminar war es glaube ich nicht.
Wenn ja, was sind deine Feststellungen zur Modellbasierten Softwareentwicklung?
Ich lasse die Finger davon. Es hät den "einfachen" Entwickler vom Denken ab.
Aber ich will Dir "Modernisierer" nichts entgegenhalten, frameworks scheinen sich ja auch über HTML,JS,CSS&Co. zu ziehen. Mein Interesse war eher ein archäologisches. Wie hiess das Ding? ;)
Hi,
Wer haut den die Meldung raus? Der Server oder das QueryTool?
Das Modellierungs-Tool PowerDesigner:
was sagt die Dokumentation dieses Tools zu dessen Meldung?
Wuerdest du also zu dem geposteten Code sagen, dass das eine korrekte, vollstaendige Tabellen-Definition fuer MySQL ist? Und dass ich die Fehlermeldung zu den Akten legen kann?
Welche Fehlermeldung? Bisher ging es immer um eine Warnung.
Cheatah
Wuerdest du also zu dem geposteten Code sagen, dass das eine korrekte, vollstaendige Tabellen-Definition fuer MySQL ist? Und dass ich die Fehlermeldung zu den Akten legen kann?
Welche Fehlermeldung? Bisher ging es immer um eine Warnung.
Das ist ein Unterschied, der m.E. nicht genug betont werden kann. Habe mal vor Jahren mit MBP Cobol gearbeitet, da waren die Warnmeldungen komplett abgestellt, obwohl es sogar 6 verschiedene Meldelevel gab. Die Firma hat Millionen gescheffelt. ;)