Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Denkprothese gesucht, wie Datenmenge verarbeiten (https://boardunity.de/denkprothese-gesucht-datenmenge-verarbeiten-t2535.html)

MrNase 02.11.2004 12:25

Denkprothese gesucht, wie Datenmenge verarbeiten
 
Hallo,

Für meine Community noch eine Top-Secret-Angelegenheit muss ich hier wohl oder übel das Geheimnis lüften ;)


Ich plane mit meinem Vater zusammen einen neuen Service für Pagodentreff. Jedes Fahrzeug der Baureihe hat zur Auslieferung einen „Datenkarte“ mitbekommen. Dort sind Ausstattungsmerkmale etc. verzeichnet. Da viele der Fahrzeuge heute nicht mehr in dem Zustand sind wie damals ist es für viele Leute interessant die Datenkarte zu entschlüsseln. Sie besteht aus 15 Feldern in die jeweils Zahlencodes kommen die alle etwas bedeuten (so steht 460 z.B. für die Farbe rot).

Genau diesen Service wollen wir anbieten, integriert werden soll es ins vB3 und übers Profil erreichbar sein. Über die Integration mache ich mir kaum Gedanken, Problematischer wird es wohl mit der Datenbankstruktur.

Ich hatte folgendes geplant:

id, feld, nummer, bezeichnung, kommentar

id sollte eindeutig sein ;)
„Feld“ vermerkt in welchem Feld der Datenkarte der Wert steht. Feld 1 auf der Karte vermerkt z.B. die Farbe
Nummer: Die Nummer die entschlüsselt werden soll direkt aus dem Formular (z.B. $_POST['feld1'])
Bezeichnung: Die Nummer im Klartext
Kommentar: Eventuelle Kommentare


Das grosse Problem an der Sache ist:
Für ein paar Zahlen gab es doppelte Bedeutungen. So war die Zahl 20 z.B. der Gepäckträger aber auch nur bis Baujahr 1968. Danach war es ein Reserverad.

Zur Zeit plane ich, jedes Feld mit einer Datenbankabfrage auszulesen. Würde 15 Abfragen ergeben was ich persönlich etwas viel finde.
Jede Abfrage wird dann in einer while() Schleife verarbeitet und als Array abgelegt sodass ich hinterher darauf zugriff habe. Ist auch nötig, da (wie oben erwähnt) für die Zahl 20 mehr als ein Ergebnis aufkommen kann.

Danach geschehen 2 Dinge:
Zum einen werden die Daten direkt ausgeben auf einer Seperaten Seite und zum anderen werden die Daten temporär gespeichert.
Ich denke da an die Tabelle „datenkarte_temp“ mit folgenden Spalten:
id, userid, feld1, feld2, usw.

In jedem Feld steht der Aufgelöste Wert (also die Bezeichnung und der Kommentar zu jeder Nummer die entschlüsselt wurde).
So habe ich einen einfachen Zugriff drauf und dann kann das Wunder passieren:

Der Benutzer hat die Möglichkeit sich anhand der Daten eine PDF-Datei generieren zu lassen damit er die Auswertung drucken kann etc.

Hat sonst noch jemand Denkansätze für mich?

Zusammengefasst:
Eingabe (Formular), Auslesen der Datensätze, Ausgabe (zum Test) und temporäre Speicherung, Ausgabe als PDF anhand der temporären Daten.


btw: Es sind knapp über 3000 verschiedene Daten *g*

Philipp Gérard 02.11.2004 18:40

Wo ist das Problem? Gib doch einfach mehrere Ids mit dem selben Feld an und bau dir danach ein einziges Query für alle Einträge, die passen, zusammen.

Pseudocode:

Code:

sql = "SELECT * FROM daten WHERE";
 
 für(einträge){
    wenn(count(einträge) > x){ sql .= "Feld = 'einträge[$x]' OR "; }
    sonst { sql .= "Feld = 'einträge[$x]"; }
 }
 
 sql .= " ORDER BY feld, id";



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25