1

衣料品を複数回リストする商品フィードがあります。商品が利用できる色とサイズごとに1つずつです。

ProductID      Product Name               Colour      Size      Price

1              Men's Board Shorts         Blue        S         4.99
1              Men's Board Shorts         Blue        M         4.99
1              Men's Board Shorts         Blue        L         5.99
1              Men's Board Shorts         Red         S         4.99
1              Men's Board Shorts         Red         M         4.99
1              Men's Board Shorts         Red         L         5.99

2つのテーブルがあります。1つは名前とID用で、もう1つは各製品のID、色、サイズ、価格用です。

最初の表では、さまざまなサイズや色の数に関係なく、商品の名前を商品ごとに1回だけ表示したいと思います。2番目の表では、製品のIDコード、サイズ、および価格を、使用可能なさまざまな色ごとに表示したいと思います。

したがって、次のデータになります。

Product Table
1     Men's Board Shorts

Options Table
1     Blue     S         4.99
1     Blue     M         4.99
1     Blue     L         5.99
1     Red      S         4.99
1     Red      M         4.99
1     Red      M         5.99

サイズを1つのフィールドにS、M、Lではなく個別のレコードに分割する理由は、大規模なアイテムの価格が中小規模のアイテムの価格と異なる場合があるためです。

私を始める/正しい方向に向けるためのアイデアはありますか?

ありがとう...

4

2 に答える 2

0

最初の表:

CREATE TABLE IF NOT EXISTS `products` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;

INSERT INTO `products` (`name`) SELECT `p_name` FROM `source_table`;

2番目の表:

CREATE TABLE IF NOT EXISTS `options` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `colour` varchar(12) NOT NULL,
    `size` char(1) NOT NULL,
    `price` float unsigned NOT NULL,
    PRIMARY KEY (`id`)
)  AUTO_INCREMENT=1 ;

INSERT INTO `options` (`colour`, `size`, `price`) SELECT `p_colour`, `p_size`, `p_price` FROM `source_table`;

私はあなたの質問を正しく理解したことを願っています。:)

于 2012-09-23T14:30:11.487 に答える
0

2つのテーブルの作成:

 CREATE TABLE product (
  id INT NOT NULL PRIMARY KEY,
  name VARCHAR() NOT NULL
  );
 CREATE TABLE options (
  product_id INT NOT NULL PRIMARY KEY,
  color VARCHAR(30),
  size VARCHAR(10),
  price DECIMAL(10,2)  
 );

テーブルへのレコードの取得と挿入:

 $result1 = mysql_fetch_assoc(mysql_query('SELECT * from ProductTemp GROUP BY ProductID', $conn));

 $result2 = mysql_fetch_assoc(mysql_query('SELECT * from ProductTemp', $conn));

 foreach( $result1 as $v ) {
  $retval1 = mysql_query("INSERT INTO product VALUES('$v['ProductID']','$v['Product Name']')", $conn);
  if(!$retval1) {
  echo 'Could not enter data into table product: ' . mysql_error(); 
  exit;
 }
 }

  foreach( $result2 as $v ) { 
 $retval2 = mysql_query("INSERT INTO options VALUES('$v['ProductID']','$v['Color']','$v['Size']' , $v['Price'])", $conn); 

if(!$retval2 ) {
  echo 'Could not enter data into table options: ' . mysql_error(); 
  exit;
 }
 } 
于 2012-09-23T13:53:56.263 に答える