Hallo Andreas!
Kategorietabelle - sieht gut aus.
Unterkategorietabelle - sieht auch gut aus.
Produkttabelle - da fängt das Raten an ;-)
Ja, so gehts mir auch!
Willst Du die ucat_id ein-eindeutig vergeben oder nur je Kategorie eindeutig?
Soll die ucat_id ein-eindeutig sein, kann man eventuell auf die cat_id verzichten. Wenn nicht, dann muß die cat_id auf jeden Fall mit rein.
Ach ja stimmt ... das habe ich übersehen.
Läßt Du sie weg, kann das später verschachtelte Abfragen sub-selects erfordern. Ich würde diese eine Spalte mit dazunehmen.
Und nu wird es janz schwierig: die Produktarten. Da komm ich jetzt nur noch halb mit. Sollen die Produktarten ähnlich aufgebaut sein, wie die Kategorien? Oder gibt es nur exakt die 4 Arten? Oder sieht die Standard-Art bei jedem Produkt anders aus?
Also bei den Produktarten - es gibt 3 Varianten - individuell, standard oder compose. Jedes Produkt gehört zu einer - aber nur einer der Varianten. Individuell könnte man evt. auslagern - aber besser von vorne.
Wenn ich ein Produkt habe - sagen wir eine Datenbank, kann diese entweder individuell gestaltet werden => der Besucher schickt eine Anfrage via Formular (das könnte ich eben auslagern). Wenn nicht indivdiduell handelt es sich um ein shop-produkt, das kann entweder standard sein Datenbank xy mit Felder a, b und c- klick und bestellen. Oder es ist ein compose-produkt, dann stoppelt sich der Besucher seine Features zusammen von der jede einen Preis hat, am Ende Gesamtpreis und bestellen.
In der Tabelle Bestellung muss ich nun ja auf die "Artikelnummer" zugreifen, oder? Also auf product_id - daher habe ich das auch so gemacht mit den Untervarianten => oder kann ich hier einfach eingeben stand_id, comp_id und für jeden Bestellpunkt und nur einer dieser beiden ist ausgefüllt?
Ich hoffe, ich habe mich halbwegs klar ausgedrückt. Ich lade noch das Bild hoch mit den Shop-Tabellen.
Die zeichnerische Darstellung sollte übrigens vom Produkt ausgehen, etwa so:
+---------------+
| Produkte |
+---------------+ +-----------+
| | +-------------------------> | Kategorie |
| produkt_id | | +-> +-----------+
| | | | | category |
| cat_id | --+ | | cat_id ...|
| | | +-----------+
| ucat_id | --+ |
| | | +---------------+ |
| ... | +--> | Unterkategorie| |
+---------------+ +---------------+ |
| ucat_id | |
| cat_id |--+
+---------------+
Warum?? Drehe ich damit nicht die 1:n Beziehung um?
Wenn jetzt in Produktart die prodart_id eineindeutig ist und die typ_id gleichzusetzen ist mit der individuell.ind_id usw. dann sieht auch das gut aus. Man könnte aber die Tabelle Produktart vielleicht weglassen und statt produkte.prodart_id sich dort gleich typ_id und subtyp_id merken.
Da komme ich eben nicht ganz mit - ich habe mir auch gedacht, das einfachere wäre gleich, das ich die Produkt-Tabelle weglassen, da sie ja eigentlich nur "Platzhalter" ist und anstelle dessen sage - es ist ein individuelles Produkt, mit ind_id xy.
Für die Angaben übernehme ich keine Gewähr ;-)
Aber für alle Fälle gibt es ja immer noch zu
CREATE TABLE meineTab
den Befehl
ALTER TABLE meineTab ADD/DROP/MODIFY ...
oder
DROP TABLE meineTab;
Und sollte man am Ende alles anders machen wollen, dann gibts ja auch ein "DROP DATABASE" =:)
Diese Befehle kennt meine PC mittlerweile schon ganz gut :)
Gruß und gut's Nächtle
Andreas
Danke fürs erste - vielleicht hast noch einen Tipp nach meiner näheren Beschreibung, wie ich meine DB sinnvoller aufbauen könnte.