Datenbankaufbau Mysql

Marek12

Neuer Benutzer
Beiträge
1
Hallo!

Brauche etwas Hilfe zu meinem Datenbankmodell.

Zur Erklärung:
Ich habe 2 Arten von Benutzer: Wettabgeber und Empfänger.

Wettabgeber geben die Wetttips ab und Empfänger erhalten diese. (logisch)

Tipps haben die Eigenschaften Quote und Einsatz (wird in einer DB gesichert)

Nachdem Empfänger diese Tipps bekommen haben kann es sein (oft), dass die Empfänger einen andere Quoten oder Einsätze setzen, die ich nun für die jeweiligen User in einer DB sichern möchte.

Beispiel:
Wettabgeber-A setzt auf TeamA bei einer Quote von 1.95 einen Einsatz von 100.

Empfänger erhalten diese Wette und setzen dann aber mehr/weniger (bei anderen Quoten)

Empfänger1 - Einsatz 50 - Quote 1.90
Empfänger2 - Einsatz 100 - Quote 2.10

Wenn ich 100 Wettabgeber und 200 Empfänger habe (nur Beispiel) sind das 20000 Datensätze

Jeder Wettabgeber gibt im Monat 50 Tipps ab (Beispiel) => sind dann im Monat 1.000.000 Datensätze. Bei einer mehr Monatsstatistik oder später vielleicht Jahresstatistik sind das sehr viele Daten.

Kenn mich leider nicht aus mit so vielen Daten.
- Wie kann man diese am besten managen?
- Was wäre die beste/schnellste Lösung?
- Habe auch überlegt die Daten eventuell nur in einem Feld abzuspeichern (jeweilig zum Empfänger)
Bsp: beim Empfänger1 eine Spalte 'empfangen' mit dem Wert '(50,1.90,ID);(80,2.05,ID);....'
Ergibt das einen Sinn? Immer wieder neues anhängen und aus der DB abfragen und danach splitten und verarbeiten?
- Fällt jemanden vielleicht etwas anderes ein?

LG
 
Werbung:
Das ergibt keinen Sinn weil es total umständlich auszulesen ist. Die Tabelle kann problemlos 12 Mio Datensätze beinhalten, sie braucht dann nur einen sinnvollen Index (z.B. nach Monat,Tippgeber/-Empfänger) und immer wenn du auf diese Daten zugreifst musst du nach diesen Eigenschaften suchen sonst wirst du schnell den Unterschied in der Geschwindigkeit merken.

Es kann dann durchaus sinnvoll sein, die Daten zum Jahres- / Sesionwechsel weg zu sichern, wenn man keine Statistiken führt natürlich auch öfter und die Datenbank ggf. zu reorganisieren (habe ich mich aber noch nicht so mit befasst).

Vom relationalen Datenbankmodell abzuweichen weil du Angst vor Performanceverlust hast sehe ich in deinem Fall als kontraproduktiv an und würde ich stark von abraten. Das Modell besagt eben auch, das jedes Atribut eine Spalte bekommt und da in deinem Fall auch immer jedes Atribut einen Wert hat halte ich es für völlig blödsinnig, die Atribute in eine Spalte zu speichern. Das kann man machen wenn man 3 Textfelder hat in denen eben nur selten etwas steht um Platz zu sparen, aber nicht bei Daten die verarbeitet werden.
 
Zurück
Oben