Keine Idee für PC-Konfigurator

E

encom

Hallo, ich möchte eine Seite erstellen auf der sich ein Kunde seinen eigenen PC zusammenstellen kann.
Nun überlege ich schon seit 2 tagen wie ich die Datenbank am besten aufbauen soll.
Der Kunde soll als erstes eine CPU auswählen, Ich will also alle CPUs in eineer Liste anzeigen. Wenn er nun einen Sockel , AMD Duron 2,8 GHZ auswählt, sollen im nächsten Schritt alle Boards angezeigt werden, die mit diesem CPU zusammen arbeiten.

Hat nun eineer eine Idee, wie ich diese Zuordnungen am besten machen kann?

Danke
 
Also auf diese eingegrenzte Problematik:
Das ist doch eine ganz simple n:m-Beziehung.
Zu lösen mit zwei Tabellen plus einer Beziehungstabelle...
 
Diese Antwort hat mir echt weitergeholfen, Danke auch.
Ist mir schon klar was du schreibst, nur ist mir nicht klar wie ich z.B. einem Board 5 CPUs zuweisen kann
 
Entschuldigung, aber ich kenne deinen Wissensstand nicht.
Wenn du schreibst, dass du einen Online-Shop programmieren willst, gehe ich davon aus, dass du die Grundkenntnisse beherrscht, ansonsten finde ich das ziemlich hoch gegriffen für den Anfang... :(

Du baust eine Tabelle "Boards" mit den Spalten "id" und "boardname",
eine weitere Tabelle "CPUs" mit den Spalten "id", "bezeichnung" und "hersteller" (oder so)
und eine dritte Tabelle "Board_CPU", in der du die Spalten "board_ID" und "CPU_ID" hast.
Für alle passenden Verbindungen trägst du einen Datensatz mit den jeweiligen IDs in diese Tabelle ein.
Da kann dann auch eine Board_ID 5 mal drin vorkommen bzw. umgekehrt, nur mit jeweils anderer CPU_ID - vorausgesetzt, du legst deinen Schlüssel oder UNIQUE über beide Spalten.
 
Zuletzt bearbeitet:
Also die zwei Tabellen boards und cpus habe ich so erstellt,
So wie du das nun schreibst wollte ich es eben nicht,

Wenn ein board jetzt 5 cpus unterstützt, dann habe ich in der Tabelle board_cpus 5 Einträge?

Das hatte ich bereits so, ich dachte mir nur dass es einen besseren Weg geben müsste.

Trotzdem Danke
 
Original geschrieben von ensacom
Wenn ein board jetzt 5 cpus unterstützt, dann habe ich in der Tabelle board_cpus 5 Einträge?
Ja, das hast du dann.
So ist die allgemeine Implementierung von n:m-Beziehungen, dasie dynamik und Redundanzfreiheit bei möglichst wenig Speicherplazverbrauch bietet.
Du hast ja in der Beziehungstabelle lediglich die IDs stehen.

Du kannst natürlich auch eine Spalte "CPUs" an die Boards-Tabelle, und/oder eine Spalte "Boards" an die CPU-Tabelle hängen, in die du die jeweiligen IDs durch Komma getrennt reinschreibst, und diese jedes mal zur Abfrage wieder splitten. Nur: egal, wie groß du dein Feld dort wählst - irgendwann ist es immer voll...
 
Zurück