VbzCart/docs/tables/shop cart line: Difference between revisions

From Woozle Writes Code
< VbzCart‎ | docs‎ | tables
Jump to navigation Jump to search
imported>Woozle
(formatting tweaks; removing all "item presentation" fields)
imported>Woozle
(+Seq field)
Line 4: Line 4:
* '''History''':
* '''History''':
** '''2009-06-16''' Changing table name to singular
** '''2009-06-16''' Changing table name to singular
** '''2009-07-12''' Tentatively removed all "item presentation" fields -- they belong in {{vbzcart|table|ord_lines}}
** '''2009-07-12'''
*** Tentatively removed all "item presentation" fields -- they belong in {{vbzcart|table|ord_lines}}
*** Added '''Seq''' field
* '''Fields''':
** '''Seq''': unique incremental sequence number for each line in the cart, for identifying the record in contexts where it is exposed to outside manipulation. This way, URL/form hacking can never affect another cart's lines.
==SQL==
==SQL==
<section begin=sql /><mysql>DROP TABLE IF EXISTS `shop_cart_line`;
<section begin=sql /><mysql>DROP TABLE IF EXISTS `shop_cart_line`;
CREATE TABLE `shop_cart_line` (
CREATE TABLE `shop_cart_line` (
   `ID`          INT          NOT NULL AUTO_INCREMENT,
   `ID`          INT          NOT NULL AUTO_INCREMENT,
  `Seq`        INT          NOT NULL COMMENT "sequence # within cart",
   `ID_Cart`    INT          NOT NULL COMMENT "shop_cart.ID",
   `ID_Cart`    INT          NOT NULL COMMENT "shop_cart.ID",
   `ID_Item`    INT          NOT NULL COMMENT "cat_items.ID",
   `ID_Item`    INT          NOT NULL COMMENT "cat_items.ID",

Revision as of 16:48, 12 July 2009

About

  • Purpose: individual items in a shopping cart
  • Parent: Template:Vbzcart
  • History:
    • 2009-06-16 Changing table name to singular
    • 2009-07-12
      • Tentatively removed all "item presentation" fields -- they belong in Template:Vbzcart
      • Added Seq field
  • Fields:
    • Seq: unique incremental sequence number for each line in the cart, for identifying the record in contexts where it is exposed to outside manipulation. This way, URL/form hacking can never affect another cart's lines.

SQL

<section begin=sql /><mysql>DROP TABLE IF EXISTS `shop_cart_line`; CREATE TABLE `shop_cart_line` (

 `ID`          INT          NOT NULL AUTO_INCREMENT,
 `Seq`         INT          NOT NULL COMMENT "sequence # within cart",
 `ID_Cart`     INT          NOT NULL COMMENT "shop_cart.ID",
 `ID_Item`     INT          NOT NULL COMMENT "cat_items.ID",
 `Qty`         INT          NOT NULL COMMENT "quantity ordered; 0 = removed from order",
 `WhenAdded`   DATETIME     NOT NULL COMMENT "when this item was first added to the order",
 `WhenEdited`  DATETIME     NOT NULL COMMENT "when the quantity for this item was last changed",
 PRIMARY KEY(`ID`)
) ENGINE = MYISAM;</mysql>

<section end=sql />

Removed

I'm inclined to think that these don't belong here, but rather in Template:Vbzcart: <mysql> /* The remaining fields preserve a record of how the item was presented to the customer, and should be used

at shipping time -- overriding any possible changes to the item's catalog record. */
 `PriceItem`   DECIMAL(9,2) NOT NULL COMMENT "price of item quoted at order time",
 `PriceShItm`  DECIMAL(9,2) NOT NULL COMMENT "per-item shipping quoted for this item at order time",
 `PriceShPkg`  DECIMAL(9,2) NOT NULL COMMENT "per-package shipping quoted for this item at order time",
 `CatNum`      VARCHAR(63)           COMMENT "cat_items.CatNum of item as sold",
 `ID_Title`    INT          NOT NULL COMMENT "cat_titles.ID",
 `DescText`    VARCHAR(255) NOT NULL COMMENT "plain-text description of item being ordered (e.g. for emails)",
 `DescHtml`    VARCHAR(255) NOT NULL COMMENT "HTML description of item being ordered, for web-page display",

</mysql>