VbzCart/tables/cust

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
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

About

  • Purpose: Core customer table – all the other customer data tables point to this one
  • Fields:
    • ID_Repl: If non-null, then this customer ID has been consolidated with the customer whose ID is in ID_Repl; whenever/wherever possible, replace occurrences of this ID with the value of the corresponding ID_Repl.
    • WhenCreated: This should be NOT NULL on systems with no legacy data
    • WhenChanged: when the contact's dependent records (address, emails, etc.) were last modified (probably not implemented much)
    • WhenUpdated: When this record was last modified
  • History:
    • 2009-07-09 moved to separate wiki page; no design changes
    • 2011-11-29 added WhenUpdated field
    • 2013-10-10 added ID_User and Title fields (see core_users for rules)
    • 2016-06-12 switching definitions of WhenChanged and WhenUpdated
      • Only one record had WhenUpdated set; very few have WhenChanged set.
    • 2019-07-02
      • renamed from "core_custs" to "cust" so it will group with the other customer tables
      • removed NOT NULL constraint on ID_Name because we need to create this record before we create the cust_names record
        • perhaps we can make this unnecessary later with transactions? but it messes with debugging, even so, so maybe we should just put in a post-creation test to make sure all necessary fields got filled in (log data error if not)

SQL

CREATE TABLE `cust` (
  `ID`          INT          NOT NULL AUTO_INCREMENT,
  `ID_Name`     INT      DEFAULT NULL   COMMENT "cust_names.ID of default name",
  `ID_Addr`     INT      DEFAULT NULL   COMMENT "cust_addrs.ID of default address",
  `ID_User`     INT      DEFAULT NULL   COMMENT "core_users.ID of user for this customer",
  `Title`   VARCHAR(127) DEFAULT NULL   COMMENT "user-entered title for this customer profile",
  `Notes`   VARCHAR(255) DEFAULT NULL   COMMENT "admin-entered notes about this customer",
  `ID_Repl`     INT      DEFAULT NULL   COMMENT "core_custs.ID of replacement",
  `WhenCreated` DATETIME   /*NOT NULL*/ COMMENT "when this record was created",
  `WhenUpdated` DATETIME DEFAULT NULL   COMMENT "when this record was last updated",
  `WhenChanged` DATETIME DEFAULT NULL   COMMENT "when this record's dependent data was last edited",
  PRIMARY KEY(`ID`)
)
ENGINE = InnoDB;