Difference between revisions of "VbzCart/tables/shop cart line"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(formatting tweaks; removing all "item presentation" fields)
(+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: shop_cart
  • History:
    • 2009-06-16 Changing table name to singular
    • 2009-07-12
      • Tentatively removed all "item presentation" fields -- they belong in 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

<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>

Removed

I'm inclined to think that these don't belong here, but rather in ord_lines: <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>