mysql:8462
From: tani <tani <tanitani@xxxxxxxxxx>>
Date: Wed, 10 Dec 2003 01:06:56 +0900
Subject: [mysql 08462]
はじめまして。大谷と申します。 四苦八苦しながら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 レファレンス・マニュアルを日本語に翻訳出来る方を募集