[前][次][番号順一覧][スレッド一覧]

mysql:6203

From: Tomohiro 'Tomo-p' KATO <Tomohiro 'Tomo-p' KATO <tomop@xxxxxxxxxx>>
Date: Wed, 18 Sep 2002 13:05:40 +0900
Subject: [mysql 06203] Re: テーブル作成数の上限

 こんにちは、加藤です。

In message "[mysql 06201] Re: テーブル作成数の上限",
Show <for_news@xxxxxxxxxx> wrote:

>本来は一つのテーブルにまとめたいのですが、そうすると
>今度は最大10000〜15000カラム、最大100万レコード程度の
>巨大テーブルになってしまう可能性があるのです。

  100 万レコードは『まあ多めかな』くらいに思いますが、フィールド数は
 異常ですね。正規化してもそうなるのでしょうか。

>イメージとしては100万程度の商品レコードがあって、
>5000社がその中のそれぞれ2〜3万レコード(重複あり)に対して
>それぞれ3カラム程度のデータを付与するという感じです。

  付与データの形式が顧客間で共通であれば、下のようなやり方もあります。

○顧客マスタ
CREATE TABLE CUSTOMERS
(
  CstmID int(11) NOT NULL auto_increment,  ← 顧客 ID
  CstmName varchar(64),                    ← 顧客名
  PRIMARY KEY (CustomerID)
);

○商品マスタ
CREATE TABLE ITEMS
(
  ItemID int(11) NOT NULL auto_increment,  ← 商品 ID
  ItemName varchar(64),                    ← 商品名
  Price int(11),                           ← 価格
  PRIMARY KEY (ItemID)
);

○顧客・商品対応テーブル
CREATE TABLE CORRESPOND
(
  CrID int(11) NOT NULL auto_increment,    ← 対応 ID  
  CstmID int(11) NOT NULL,                 ← 顧客 ID
  ItemID int(11) NOT NULL,                 ← 商品 ID
  PRIMARY KEY (CrID),
  KEY (CstmID, ItemID)
);

○付与データテーブル
CREATE TABLE ADDITIONAL
(
  CrID int(11) NOT NULL,                   ← 対応 ID
  AddData varchar(64),                     ← 付与データ
  KEY (CrID)
);

○顧客ごとの商品名・価格・付与データ
SELECT ItemName,Price,AddData FROM 
(ITEMS AS I INNER JOIN CORRESPOND AS C ON I.ItemID=C.ItemID) 
INNER JOIN ADDITIONAL AS A ON C.CrID=A.CrID 
WHERE CstmID=n;

○顧客ごとの商品数
SELECT COUNT(*) FROM CORRESPOND WHERE CstmID=n;

>■スピードはそれほど必要としない

  といっても共用レンタルということはなるべく負荷がかからず、サーバリソースを
 占有しないように留意しないといけませんね。

--  ________________________________
  _/_/  Tomohiro "Tomo-p" KATO
 _/_/  e-mail : tomop@xxxxxxxxxx
_/_/  http://www.teamgedoh.net/

[前][次][番号順一覧][スレッド一覧]

      6171 2002-09-16 19:18 ["Shuji Urano" <pipo@]                                         
      6174 2002-09-16 19:49 ┗["Takashi Yamashita" ] Re: アクセス拒否(仮題)              
      6175 2002-09-16 20:57  ┗["Shuji Urano" <pipo@]                                     
      6176 2002-09-16 21:20   ┗["Takashi Yamashita" ]                                   
      6181 2002-09-17 04:05    ┗["Shuji Urano" <pipo@] Re: アクセス拒否                
      6189 2002-09-17 09:48     ┣["Takashi Yamashita" ]                               
      6192 2002-09-17 10:39     ┗["Takashi Yamashita" ]                               
      6193 2002-09-17 11:26      ┗["Takashi Yamashita" ]                             
      6194 2002-09-18 08:28       ┗[Show <for_news@xxxxx] テーブル作成数の上限      
      6195 2002-09-18 09:10        ┣[遠藤 俊裕 <endo_t@xx]                         
      6196 2002-09-18 09:45        ┣["Takashi Yamashita" ]                         
      6199 2002-09-18 10:18        ┃┣[遠藤 俊裕 <endo_t@xx]                       
      6200 2002-09-18 10:42        ┃┃┗["Takashi Yamashita" ]                     
      6201 2002-09-18 11:48        ┃┗[Show <for_news@xxxxx]                       
      6202 2002-09-18 12:17        ┃ ┣[Shingo Yamagai <yama]                     
->    6203 2002-09-18 13:05        ┃ ┣[Tomohiro 'Tomo-p' KA]                     
      6204 2002-09-18 13:17        ┃ ┣["黒木 玲" <kuroki434]                     
      6205 2002-09-18 13:33        ┃ ┗["Takashi Yamashita" ]                     
      6215 2002-09-18 20:48        ┃  ┗[Show <for_news@xxxxx]                   
      6197 2002-09-18 10:00        ┗["TAKAHASHI, Tomohiro]                         
      6198 2002-09-18 10:14         ┗[遠藤 俊裕 <endo_t@xx]