Hi,
meine folgenden Anmerkungen sind "ideologischer" Art.
tbl_categories:
Mir gefaellt die Praefix 'tbl_' nicht. Besser 'CATEGORIES'.
//Zeigt Kategorien für Produkte, wird für die History-Funktion //benötigt
'<Beschreibung>Zeigt welche Produkte zu welcher Zeit welcher Kategorie zugeordnet sind oder waren.</Beschreibung>'
+---------------+------------------------+
| categories_id | name |
+---------------+------------------------+
| 0 | Notebook |
| 1 | Notebook CD-RW/DVD-ROM |
+---------------+------------------------+
'categories_id' ist nicht gut, besser 'Category_ID'. 'name' ist nicht gut, bssser 'Category_Name'.
tbl_options
Tabellenname nicht OK, s.o..
//Zeigt alle Produktoptionen für eine Produkt(Zubehör)
'<Beschreibung>Haelt Optionen, auf die von den Produkten verwiesen wird.</Beschreibung>'
+-----------+----------------------------------+---------------+-----------+
| option_id | name | categories_id | states_id |
Datenfeldnamen nicht OK, s.o..
+-----------+----------------------------------+---------------+-----------+
| 2 | IBM ThinkPad CD-RW/DVD-ROM Combo | 1 | 1 |
| 1 | IBM ThinkPad DVD-ROM Combo | 1 | 2 |
+-----------+----------------------------------+---------------+-----------+
tbl_products
Tabellenname nicht OK, s.o..
//Zeigt alle Produkte
'<Beschreibung>Haelt die Produkte und bildet soz. die Haupttabelle, um die sich andere Tabellen scharen.</Beschreibung>'
+-------------+------------------+---------------+-----------+
| products_id | name | categories_id | states_id |
Datenfeldnamen nicht OK, s.o..
+-------------+------------------+---------------+-----------+
| 1 | IBM ThinkPad T40 | 0 | 2 |
| 2 | IBM ThinkPad R50 | 0 | 1 |
+-------------+------------------+---------------+-----------+
tbl_products_options
Bsserer Name 'RELATIONS_PRODUCTS_OPTIONS'.
//Ordnet den Produkten bestimmte Optionen zu
+---------------------+-------------+------------+
| products_options_id | products_id | options_id |
+---------------------+-------------+------------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
+---------------------+-------------+------------+
Bessere Namen:
'Relation_Products_Options_ID' statt 'products_options_id'
'Relation_Product_ID' statt 'products_id'
'Relation_Oprion_ID' statt 'options_id'
Anmerkung: Es ist zu ueberlegen, ob die Historisierung der Beziehung zwischen der Tabelle 'PRODUCTS' und der Tabelle 'OPTIONS' nicht anders realisiert werden kann. (Beispielsweise ueber eine zweite DB mit dem namen 'DB_HISTORY'. ;-).
tbl_states
Tabellenname nicht OK, s.o..
//Zeigt die verschiedenen Zustände
'<Beschreibung>Haelt Stati...</Beschreibung>'
+-----------+---------------------+
| states_id | name |
Datenfeldnamen nicht OK, s.o..
+-----------+---------------------+
| 0 | Test |
| 1 | Aktuelles Sortiment |
| 2 | Bestand |
| 3 | Liquidation |
+-----------+---------------------+
Erklärungen:
-Ein Produkt kann keine, eine oder mehrere Optionen haben.
-In einer Kategorie gibt es Produkte und Optionen in den verschiedenen Stati
-Kommt ein Nachfolgeprodukt, verschieben sich die Stati der anderen Produkte um eins nach Hinten.
Moeglicherweise habe ich die Beziehungen der Tabellen nicht verstanden, kannst Du vielleicht ein DB-Designdiagramm einbinden?
Gruss,
Lude
--
"Ohne Taschengeld, der Hund nicht bellt."