Wie mit zu viele Daten umgehen?

Hallo,

in meinem Formular kann der User Einträge auswählen wie z.B. Apfel, Birne, Banane etc. Es können 2 oder 3 Einträge sein, es können aber auch 20 oder 30 sein. Ich möchte die Einträge nun gerne in meiner MySQL-Datenbank speichern und mich nimmt es Wunder, welche die sinnvollste Art und Weise wäre.

Option A
Alle Einträge erhalten in der Datenbank einzelne Columns (also ganz klassisch).
Nachteil: Die Anzahl der Spalten wären derzeit bei ca. 40. Sie könnte bis zu 200 wachsen.

Option B
Es gibt 1 Spalte und diese beinhaltet ein JSON.
Nachteil: Wenn ich mich nicht täusche, wird das schlecht für die Performance sein.

Mein Vorhaben
  • Jedes Mal wenn das Formular abgeschickt wird, werden die Daten gespeichert und der User erhält seine Statistik, wie z.B.: 4 Apfel, 2 Birne, 0 Banane
  • Ich hätte gerne eine Statistik von allen Usern für mich selbst.
Wie würdet ihr vorgehen? Option A, B oder vielleicht C?
 
Nachteil: Die Anzahl der Spalten wären derzeit bei ca. 40. Sie könnte bis zu 200 wachsen.
Ähmm... what?!

So wie ich es sehe, brauchst du ganz genau 2 Spalten entsprechend dem "User" und der "ausgewählten Frucht".
Dann sähe eine Beispieltabelle z.B. so aus:
Code:
user | frucht
-----+-------
   1 | apfel
   1 | banane
   1 | zitrone
   1 | orange
   2 | apfel
   2 | zitrone
   3 | ...
   . |
   . |
   . |
Immer schön normalisieren! :)
 
Und man könnte das ganze dann auch noch über mehrere Tabellen teilen, sodass dann nur die IDs der einzelnen Einträge gespeichert wird (also quasi Look-Up-Tables).

Also z.B. so:
Code:
Tabelle frucht:
ID    |    Name
1    |    Apfel
2    |    Birne
3    |    Orange


Tabelle user:
ID    |    User
1    |    Max
2    |    Hans


Tabelle userFrucht:
ID    |    uID    |    fID
1    |    1    |    1
2    |    1    |    3
3    |    2    |    2
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben