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

mysql:8463

From: tani <tani <tanitani@xxxxxxxxxx>>
Date: Wed, 10 Dec 2003 01:22:11 +0900
Subject: [mysql 08463] Re: フィールドの値をフィールドにする

すみません。件名を付け忘れました。
On Wed, 10 Dec 2003 01:06:56 +0900, tani wrote:
> はじめまして。大谷と申します。
> 
> 四苦八苦しながらSQLを書いているのですが、こんな方法で
> 大丈夫なのかと心配になり、投稿いたします。
> 
> 仕事の工程管理をするアプリケーションを作成しています。
> ひとつの仕事にはいくつかの工程があり、かつ工程の数が
> 固定ではないので別テーブルで工程を管理することにしました。
> 
>  +-------------+
>  |仕事テーブル |
>  |=============|
>  |   仕事ID    |
>  |-------------|
>  |   仕事名    | A社web作成/B社web作成など
>  +-------------+
> 
>  +-------------+
>  |工程テーブル |
>  |=============|
>  |   仕事ID    |
>  |-------------|
>  |   工程名    | 受注/製作/修正/納品など
>  |-------------|
>  |    期限     | 11.4/12.20など
>  +-------------+
> 
> --------問題点-----------------------------------------
> 仕事のリストを表示する必要があります。
> リストにはいくつかの工程も表示する必要があります。
> リストは工程の項目でもソートが可能である必要があります。
>  +-----------------------+
>  |仕事名     |受注 |納品 |
>  +-----------------------+
>  |A社web作成 |11.4 |12.1 |
>  +-----------------------+
>  |B社web作成 |11.20|12.10|
>  +-----------------------+
> 
> --------自分なりの解決方法-----------------------------
> フィールドの値にある情報(受注、納品)からそれぞれ
> テーブルを作成。作成したテーブルを仕事テーブルと結合。
> 
> 上記を踏まえて以下のようなSQLを書きました。
> 
> 
> --------SQL--------------------------------------------
> #受注テンポラリテーブル作成
> CREATE temporary table T1 as
>     SELECT 仕事ID, 工程名 as "受注"
>     FROM   工程テーブル
>     WHERE  工程名 = "受注";
> 
> #インデックス作成
> ALTER table T1 add index (仕事ID);
> 
> 
> #納品テンポラリテーブル作成
> CREATE temporary table T2 as
>     SELECT 仕事ID, 工程名 as "納品"
>     FROM   工程テーブル
>     WHERE  工程名 = "納品";
> 
> #インデックス作成
> ALTER table T2 add index (仕事ID);
> 
> #仕事リスト作成
> 
> SELECT 仕事名,受注,納品
> FROM   仕事テーブル
>        LEFT JOIN T1 ON T1.仕事ID = 仕事テーブル.仕事ID
>        LEFT JOIN T2 ON T2.仕事ID = 仕事テーブル.仕事ID
> 
> --------心配な点---------------------------------------
> ・SQLってこんな使い方をするのか(アプリケーションで
>  解決すべき問題なのか)
> ・そもそもデータベースの設計が悪いのか
> -------------------------------------------------------
> 
> こんな説明で正しく伝わるかは不安ですが、皆様の意見を
> いただければと思います。
> 
> よろしくお願いします。
> 
> -- 
> 大谷泰弘
> 

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

      8462 2003-12-10 01:06 [tani <tanitani@xxxxx]                                         
->    8463 2003-12-10 01:22 ┣[tani <tanitani@xxxxx] Re: フィールドの値をフィールドにする  
      8465 2003-12-10 07:50 ┃┗["KAWAI,Takanori" <GC]                                     
      8473 2003-12-10 23:50 ┃ ┗[tani <tanitani@xxxxx]                                   
      8464 2003-12-10 01:25 ┗["T.P.S.Nakagawa" <ya]                                       
      8474 2003-12-11 00:05  ┣[tani <tanitani@xxxxx] Re: フィールドの値をフィールドにする
      8487 2003-12-14 09:00  ┗[Kazuhiro Yoshida <mo] enum vs master table (Re: )         
      8490 2003-12-14 09:22   ┣["T.P.S.Nakagawa" <ya]                                   
      8491 2003-12-15 04:36   ┗["zen kishimoto" <zen] MySQL レファレンス・マニュアルを日本語に翻訳出来る方を募集