[18:12] <Sawfish> hast du schon öfters mit datenbanken gearbeitet?
[18:12] <GF> erstes mal mit DBI
[18:12] <GF> ansonsten immer mit textdbs
[18:13] <GF> aber das schon sehr lange
[18:13] <Sawfish> ok, dann is auch klar warum du das so machst ^^
[18:13] <GF> ich weiss, wies anders geht
[18:13] <GF> aber dann bräuchte ich einen weiteren table
[18:13] <GF> aber das wollte ich nicht

[18:14] <GF> ich hab lieber alle wichtigen infos auf einem fleck
[18:14] <GF> mag zwar performance kosten, dafür reduziert es aber bugs
[18:15] <Sawfish> mehrere datensätze sollten nicht in der selben spalte stehen, das is unsauber
[18:15] <Sawfish> ich würd in der tabelle news einfach eine zusätzlich spalte mit spielerid machen
[18:15] <GF> das hatte ich auch zuerst
[18:15] <GF> aber überleg mal
[18:16] <GF> wenn du die newslist anzeigen willst
[18:16] <Sawfish> jo
[18:16] <GF> musst du die ganze Table News nach (=ownerid) durchsuchen
[18:16] <GF> wenn du die liste aber schon hast, entfällt das suchen
[18:17] <GF> da die table news bei 34k spielern recht gross wird, ist das ein riesiger Performancegewinn
[18:17] <Sawfish> ich mach: select * from news where ownerid=1234
[18:18] <Sawfish> das gibt mir alle news des spielers zurück
[18:18] <Sawfish> das is viel schneller als wenn ich lauter einzelne select * from news where id=xxx mach
[18:20] <GF> hmmmmm
[18:21] <GF> ok
[18:21] <GF> machs so
[18:22] <GF> hmmmm
[18:23] <GF> select * from news where id=xxx
[18:24] <GF> das ist ein zugriff
[18:24] <GF> die genaue adresse ist ja bekannt, die ist id * datensatzgrösse
[18:24] <GF> also kein suchen
[18:25] <GF> select * from news where ownerid=1234 <--- das sind im schlechtesten fall 34k*maxnews zugriffe
[18:25] <Sawfish> <@GF> die genaue adresse ist ja bekannt, die ist id * datensatzgrösse <-- wirklich?
[18:25] <GF> ja
[18:26] <GF> hab einiges gelesen über relationale Datnebanksysteme
[18:26] <GF> der zugriff erfolgt über ine lineare Funktion
[18:26] <GF> deshalb ist das auch so schnell
[18:26] <Sawfish> kannst mir zeigen wo das steht?
[18:26] <GF> und deshalb gibt es auch nur statische typen
[18:26] <GF> hmmmmmmm
[18:26] <GF> ich such mal

[18:26] <GF> ist ewig her, bestimmt 1/2 Jahr
[18:27] <Sawfish> hast auch über die Normalformen gelesen?
[18:27] <GF> nicht dass ich mich erinnern kann
[18:28] <GF> aber erzähl mal
[18:28] <Sawfish> les dir das mal durch wennst zeit hast:
http://de.wikipedia.org/wiki/Normali...28Datenbank%29
[18:28] <GF> ich lass mich gerne belehren
[18:28] <GF> solange ich was dabei lerne
[18:29] <Sawfish> wennst das noch nicht weißt, lernst sicher was dabei
[18:29] <Sawfish> aber such trotzdem weiter

[18:35] <GF> hmmm
[18:36] <GF> was da steht, ist nicht übertragbar auf unser problem
[18:37] <Sawfish> naja, die datenbank sollte den normalformen entsprechen
[18:37] <GF> anomalien könne hier nicht auftreten
[18:37] <GF> *können
[18:38] <GF> und vor allem: das sagt nichts darüber aus, wie schnell bestimmte abfragen sind

[18:38] <Sawfish> anomalien können immer auftreten
[18:38] <GF> ich habe hier keinen zweiten schlüssel, nur werte
[18:38] <Sawfish> <@GF> und vor allem: das sagt nichts darüber aus, wie schnell bestimmte abfragen sind

<-- das nicht, das stimmt

[18:39] <GF> hmmm
[18:39] <Sawfish> z.b. könnte es so passieren, dass 2 spieler die selbe news id in ihrer liste haben
[18:39] <GF> kann den beitrag nicht finden

[18:39] <Sawfish> oder dass ein news eintrag keinen besitzer hat
[18:39] <GF> hä? wìe?
[18:40] <GF> das könnte nur dann passieren, wenn schlecht gecoded wird
[18:40] <Sawfish> genau dann kann es passieren
[18:40] <GF> bei mir wird aber nicht schlecht gecoded

[18:40] <GF> und mal zum Thema Geschwindigkeit
[18:41] <GF> das kann man auch durch nachdenken herausfinden
[18:41] <GF> 1. Jeder Datensatz hat eine feste Grösse
[18:41] <GF> richtig?
[18:41] <Sawfish> eine saubere datenbank muss so designed sein, dass solche dinge garnicht auftreten können
[18:41] <Sawfish> nicht unbedingt
[18:42] <Sawfish> es gibt auch datentypen mit variabler breite
[18:42] <GF> wenn das nicht so ist, hat Mysql keinen vorteil gegenüber ner textdatei
[18:42] <Sawfish> doch, das hat noch einige andere vorteile...
[18:42] <GF> ja schon, aber die haben trotzdem eine feste grösse .. du meinst varchar() etc..
[18:42] <Sawfish> jo z.b.
[18:42] <GF> aber erstmal angenommen, jeder datensatz hat eine feste grösse
[18:43] <Sawfish> k
[18:43] <GF> und 2. jeder datensatz hat seinen festen platz
[18:43] <GF> => id 2 kommt nach 1
[18:43] <GF> etc etc..
[18:44] <Sawfish> muss ich das jetzt auch annehmen?

[18:44] <GF> wie findet man dann den speichertanfangsort des n-ten datensatzes?
[18:44] <GF> `jo
[18:45] <Sawfish> pointer = start + n*size
[18:45] <GF> genau
[18:45] <Sawfish> von dem zweiten kannst aber nicht ausgehen
[18:45] <GF> ich dachte immer, genau das wäre der geschwindigkeitsvorteil gegenüber suchen
[18:46] <GF> soso, also heisst mysql suchen wie in einer textfile?
[18:46] <Sawfish> dann müssten alle news von 1 bis n immer in der datenbank bleiben
[18:46] <GF> naja
[18:47] <GF> vielleicht gibt es ja so eine art id->speicherort zuordnungstabelle
[18:47] <Sawfish> vielleicht ^^
[18:47] <GF> hehe
[18:47] <GF> mir reichts, ich werd mal in nem Forum fragen
[18:48] <Sawfish> gut