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 レファレンス・マニュアルを日本語に翻訳出来る方を募集