Modify

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#1505 closed Erweiterung (fixed)

Tabelle orders. Spalte shipping_class erweitern

Reported by: Volker Strähle Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.5.0
Component: Shop Version: trunk
Keywords: Cc:
Blocked By: Blocking:

Description

Die Spalte shippingclass der Tabelle orders ist nur 32 Zeichen lang. Damit lassen sich nur Module nutzen deren Klassenname max 15 Zeichen lang ist. Grund: der Klassenname steht dort 2x mit Unterstrich verbunden drin. (32-1=31, 31:2=15)

Überschreitet ein Klassenname die Länge von 15 Zeichen so wird einfach am Ende in der DB abgeschnitten, z. B.:
langerklassenname_langerklassenna

Attachments (0)

Change History (4)

comment:1 by Torsten Riemer, 7 years ago

Milestone: modified-shop-2.0.4.2modified-shop-2.0.5.0
Type: Bug/FehlerErweiterung

comment:2 by Volker Strähle, 7 years ago

Man kann das aber auch alternativ so lösen:

  function install() 
  {
    // ... 

    $col_struct_query = xtc_db_query("SELECT CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS 
							WHERE TABLE_NAME= '".TABLE_ORDERS ."' AND TABLE_SCHEMA= '". DB_DATABASE ."' AND COLUMN_NAME = 'shipping_class'");
    if(xtc_db_num_rows($col_struct_query) > 0){
      $colsizes = xtc_db_fetch_array($col_struct_query);
      if($colsizes['CHARACTER_MAXIMUM_LENGTH'] < 33){
        $db_alter_columns = xtc_db_query("ALTER TABLE ".TABLE_ORDERS." CHANGE shipping_class shipping_class VARCHAR(33)");
      }
    }
  }

So kann jeder in seinem Modul abfragen ob die Datenlänge ausreicht und ggf. auf das notwendige Minimum erweitern. Bläht die Tabelle nicht unnötig auf.

comment:3 by Gerhard Waldemair, 7 years ago

Resolution: fixed
Status: newclosed

In 11512:

fix #1505

comment:4 by Torsten Riemer, 7 years ago

In 11514:

Minor addition on r11512 (fix #1505)

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.