|
||||
[MySQL] ab wann lieber eine neue Tabelle verwenden
Ich schreib mir grad nen CMS und frag mich grad, ab wann man lieber eine neue MySql Tabelle verwenden sollte.
Es geht um folgendes: Ich möchte z.B. einen Klickcounter und ein Voting schreiben, die optional in andere Scripte eingebunden werden können (z.B. Links, Downloads sowas). Ich wollte eine Tabelle für Klicks, und eine für Votes nehmen, und dann über join und ein paar Parameter das ganze regeln, nur kam mir da die Frage, wann sowas eine - stark spürbare - Geschwindigkeits Bremse wäre, also ab wieviel Einträgen. 100? 500? 1000? 10.000?
__________________
Bitte keine PN's - schreibt mir ne anständige Mail oder sprecht mich über Msn / Icq an Milian Wolff | Markdownify | Typogridder |
Sponsored Links |
|
|||
Du solltest Dir Gedanken über Dein DB-Design machen, Stichwort 'Normalformen'. Damit solltest Du eine Struktur finden, die alle Anforderungen erfüllt. Die Menge der Einträge in einer Tabelle spielt dabei eine untergeordnete Rolle, denn DBMS (Datenbank Managementsysteme) sind darauf ausgelegt, sehr viele Daten zu speichern. 10.000 Einträge ist keineswegs viel für ein DBMS.
/€dit: Wenn Du Tabellen joinst, solltest Du aber auch drauf achten, kein Kreuzprodukt zu forcieren - denn dann wird es wirklich langsam. |
Sponsored Links |
|
|||
Hi!
Bei diesen Zahlen sehen ich wie mein Vorgänger auch keine Probleme. Du solltest dir aber gerade bei einem Join Geanken über ein vernünftiges INDEX-Design machen. Alternativ könnte man auch z.B. für jeden Link eine Zeile hinterlegen, in dieser ein Feld mit den Klicks vorhanden ist, das entsprechend hochgesetzt wird. Wenn man aber noch andere Angaben speichern möchte wird das natürlich schwierig... Gruß Jan |
|
||||
Verstehe ich das richtig, eine Tabelle, für alles? Oder was meintest du mit "Normalformen"?
Und was meinst du mit "ein Kreuzprodukt forcieren"? @ Jan Ich wollte diese Scripte variabel einbinden, also es dem Endnutzer freistellen, sie zu benutzen. Jedes meiner Scripte hat eine MySql Tabelle mit primary ID (auto_increment). Als Index wollt ich daher a)den Scriptnamen b)die ID aus der Tabelle dieses Scripts übergeben. Sollte man es anders machen?
__________________
Bitte keine PN's - schreibt mir ne anständige Mail oder sprecht mich über Msn / Icq an Milian Wolff | Markdownify | Typogridder |
|
|||
Zitat:
Zitat:
Deshalb ist es sinnvoller, Join-Bedingungen anzugeben, z.B. soll der FK (Foreign Key/Fremdschlüssel) der einen Tabelle gleich dem PK (Primary Key/Primärschlüssel) der zweiten Tabelle sein. Die dabei entstehende Tabelle benutzt also die gegebene Bedingung als "Reißverschluß", um beide Ursprungstabellen miteinander zu verknüpfen. Das Resultat ist sehr viel kleiner. Egal, wie man es macht - man kommt mit beiden Methoden zum Ziel. Gibt man jedoch keine Bedingung an, kann man evtl. ungewünschte Ergebnisse erhalten. Vor allem aber wird es dann viel langsamer. |
|
||||
Danke für den Link und die Tips, werd ich versuchen umzusetzen.
Frage zum Wikipost: a) 2NF ist, was ich machen sollte, richtig? b) Sobald man Date oder DateTime benutzt hat man keine 2NF (Date ist nicht atomar) c) Würde das stimmen (Beispiel) Tabelle 1 Text - Titel - Id - Tag - Monat - Jahr Tabelle 2 FremdId - Kategorie - Id - Klicks
__________________
Bitte keine PN's - schreibt mir ne anständige Mail oder sprecht mich über Msn / Icq an Milian Wolff | Markdownify | Typogridder |
|
|||
Hi!
Ich würde das so machen: Script-Tabelle: id (Primärschlüssel) | script (Scriptname) "Klick-Tabelle": id (Primärschlüssel) | script_id (id aus der Script-Tabelle) | timestamp | user | u.s.w. Dann würde ich in der Klick-Tabelle einen INDEX auf script_id setzten. So kannst du die Tabellen wunderbar verknüpfen. Oder habe ich jetzt etwas falsch verstanden? Gruß Jan |
|
|||
Zitat:
Zitat:
Zitat:
P.S.: IDs würde ich an den Anfang der Tabellen setzen - wegen des Überblicks... |
Sponsored Links |
|
||||
Tabelle 1 wäre z.B. eine der Tabellen für Artikel, News, Events, Links etc. (in diesem Falle hab ich einfach nur ein paar Grundspalten gewählt).
Tabelle 2 wäre dann die Tabelle für Klicks, könnte ich ja gleich mit Votes verknüpfen. Jan, du hast das nicht verstanden, oder? Weil dein vorschlag macht in meinen Augen keinen sinn
__________________
Bitte keine PN's - schreibt mir ne anständige Mail oder sprecht mich über Msn / Icq an Milian Wolff | Markdownify | Typogridder |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Mysql: Tabelle Ordnen, nach Integer Werten (timestamp) oder Zeitformaten? | braindead | Serveradministration und serverseitige Scripte | 8 | 14.03.2007 21:21 |
Wirklich CSS oder doch lieber eine Tabelle? | quarki69 | CSS | 8 | 22.02.2007 23:13 |
Aus-/Einblenden von Zeilen in einer Tabelle mit JavaScript | brainstorm1984 | Javascript & Ajax | 3 | 02.02.2007 11:25 |
[MYSQL] Tabelle ohne Primärschlüssel | lomtas | Serveradministration und serverseitige Scripte | 6 | 24.08.2006 14:23 |
FF: Tabelle in Tabelle centern | wuschba | CSS | 2 | 20.07.2006 11:00 |