Customers basket
Tabelle customers_basket[Bearbeiten]
Warenkorbinhalte
Die Tabelle speichert den Warenkorbinhalt des Kunden. Normalerweise wird dieser in den Sessionvariablen gespeichert. Die Ablage in der Tabelle ermöglicht, daß der Warenkorbinhalt über die Lebensdauer der Session (Logout, Wiederlogin) erhalten bleibt.
Feldname | Datentyp | Beschreibung |
customers_basket_id | int(11) | Datensatz ID (Primärschlüssel) |
customers_id | int(11) | Kunden ID, Ref. Tab. customers |
products_id | tinytext | Artikel ID, Ref. Tab. products |
customers_basket_quantity | int(2) | Artikelanzahl |
final_price | decimal(15,4) | Preis |
customers_basket_date_added | varchar(8) | Datensatz Anlage Datum |
11.01.2012 peter Anmerkungen:
- final_price: Wozu? Preise werden doch live berechnet? Bei etwa 1900 Basket-Datensätzen in unserem xt:c basierten Shop steht da überall 0.0
- customers_basket_date_added: Sollte hier nicht ein für Datumsangaben geeigneter Datentyp wie z.B. datetime gewählt werden?
- products_id: Da dieses Feld eigentlich den Primärschlüssel von products.products_id referenzieren soll, sollte der Datentyp wie products.products_id sein.
Das ist notwendig für:
- spätere mögliche Umstellung von MyISAM Tabellentyp auf Tabellentypen, die echte Referenzen zwischen Datenbanktabellen erlauben. (InnoDB) Dies ermöglicht z.B. mit einem Produkt in products zusammenhängende Daten zu entfernen/zu ändern, ohne dass das extra programmiert werden muss. Das erledigt dann je nach Konfiguration der Referenz die Datenbank selbständig.
- automatische Datenbankdokumentation mit Lerneffekt durch Auswertung von INFORMATION_SCHEMA
- Möglicherweise sind JOINS zwischen den referenzierten Tabellen schneller, da der Datentyp für den JOIN intern nicht konvertiert werden muss. Inwieweit das wirklich an diesen Tabellen Performanceauswirkungen hat, müsste getestet werden.