![]() |
Re: Performance verbessern
und wo soll ich den erstellen?
was ist FK? Fremd..? oder anders gesagt - jede tabelle hat natürlich noch die spalte ID - die als primary key definiert ist. |
Re: Performance verbessern
kategorie
ID Integer Primary Key name string //namen der kategorien unterkat ID integer kat integer //hauptkategorie -> Foreign Key (ID in Tabelle kategorie) unter string //name der unterkategorie Poste mal die Metadaten (Am Besten von Admintool erzeugen lassen) |
Re: Performance verbessern
was meinst du mit metadaten?
|
Re: Performance verbessern
So, habe das jetzt mal direkt in MySQL getestet. Funktioniert wunderbar. Ich habe dabei genau deine Struktur benutzt. Was für eine MySQL-Version benutzt du?
Oh, sehe gerade das hast du ja angeben. MySQL5 benutzte ich auch. Verwunderte Grüsse Thorsten |
Re: Performance verbessern
Zitat:
€: hmm ich hab den code nunmal local getestet und da geht es - wenn ich es auf dem externen server probiere geht es nicht. gruß |
Re: Performance verbessern
Zitat:
Du hast ja was von ID-Feldern geschrieben, welche in deiner obigen Übersicht nicht vorhanden waren. |
Re: Performance verbessern
tabelle kategorie
SQL-Code:
tabelle unterkat
`Id` int(6) unsigned NOT NULL auto_increment,
`name` char(100) NOT NULL, PRIMARY KEY (`Id`)
SQL-Code:
tabelle rezepte
`Id` int(6) unsigned NOT NULL auto_increment,
`kat` char(100) NOT NULL, `unter` char(100) NOT NULL, PRIMARY KEY (`Id`)
SQL-Code:
tabelle zutaten
`Id` int(6) unsigned NOT NULL auto_increment,
`name` char(100) NOT NULL, `unterkat` char(100) NOT NULL, `kategorie` char(100) NOT NULL, PRIMARY KEY (`Id`)
SQL-Code:
hoffe das ist das richtige - wie gesagt beziehungen gibt es eigentlich keine zwischen den tabellen mit fremdschlüssel usw - da ich auch gar net zu 100% weiß wie man die unter mysqlfront anlegt - ich kenn das nur von access aus der schule damals mit dem rüberziehen der felder.
`Id` int(6) unsigned NOT NULL auto_increment,
`kategorie` char(100) NOT NULL, `unterkat` char(100) NOT NULL, `name` char(100) NOT NULL, `zutat` char(50) NOT NULL, `menge` char(10) NOT NULL, `mass` char(10) NOT NULL, `zubereitung` blob NOT NULL, PRIMARY KEY (`Id`) gruß |
Re: Performance verbessern
Hallo,
zur Syntax (habe ich von FB, aber sollte ähnlich sein) table_detail: Id Integer (hier unwichtig) MasterId Integer (Id, also Primärschlüssel, der Mastertabelle) table_master Id Integer (Primärschlüssel) alter table table_detail add constraint FK_table_detail_DetailId foreign key (MasterId) references table_master(Id) Und falls es sowas bei mysql schon gibt on delete CASCADE Heiko PS: Ich glaube mich zu erinnern, dass es mal ne heftige Diskussion zu foreign keys bei mysql gab. Es gab ne Menge Leute, die gesagt hatten: "Das brauchen wir nicht, das macht die DB nur langsam" Stand sogar im 3er Handbuch so drin. |
Re: Performance verbessern
hi,
also ich habe nun ein paar neue tabellen angelegt - ich würde die gerne mit euren tipps perfektionieren. tabelle: kategorien
SQL-Code:
tabelle: unterkategorien
`ID` int(11) NOT NULL default '0',
`NAME` varchar(100) NOT NULL default '', PRIMARY KEY (`ID`)
SQL-Code:
tabelle: rezept
`ID` int(11) NOT NULL default '0',
`NAME` varchar(100) NOT NULL default '', `kname` int(11) NOT NULL default '0', PRIMARY KEY (`ID`)
SQL-Code:
tabelle: zutat
`ID` int(11) NOT NULL default '0',
`NAME` varchar(100) NOT NULL default '', `kname` int(11) NOT NULL default '0', `uname` int(11) NOT NULL default '0', PRIMARY KEY (`ID`)
SQL-Code:
kname, uname, rname - sind jeweils FK's - mit bezug auf die einzelnen zugehörigen tabellen haltet ihr diese aufteilung für sinnvoll?
`ID` int(11) NOT NULL default '0',
`zutat` varchar(100) NOT NULL default '', `menge` varchar(100) default NULL, `mass` varchar(100) default NULL, `zubereitung` blob NOT NULL, `kname` int(11) NOT NULL default '0', `uname` int(11) NOT NULL default '0', `rname` int(11) NOT NULL default '0', PRIMARY KEY (`ID`) gruß |
Re: Performance verbessern
Hallo,
ein paar zarte Hinweise hatte ich dir ja schon in Beitrag #23 gegeben. Ich will sie gerne noch etwas präzisieren:
Code:
ID sind automatisch vergebene Schlüssel (autoincrement). iPos ist ein Sortierkriterium und steuert die Reihenfolge der Einträge. Bei meiner Namenskonvention ist KAT_ID ein Fremdschlüssel und zeigt auf ID in der Tabelle Kategorien.
Kategorien: ID, KAT_ID, iPos, Name
Rezepte: ID, KAT_ID, NAME, Zubereitung Zutaten: REZ_ID, iPos, Bezeichnung, Masseinheit, Menge Mehr Tabellen brauchst du eigentlich nicht. Die Tabelle Kategorien ist rekursiv angelegt und könnte so auch eine Gliederung beliebiger Tiefe aufnehmen. Das Schlüsselkonzept hast du wohl noch nicht so richtig verinnerlicht. Nicht die String-Felder sind Fremdschlüssel, sondern deren Schlüsselwerte aus der jeweiligen Lookup-Tabelle. Wenn du dich mit der spontanen Erstellung eines physischen Datenmodells noch schwer tust, dann fange vielleicht besser mit einer ER-Modellierung an. Das geht auch ohne Werkzeuge und rein textuell. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz