これからの季節に親子でハイキング! >>

簡素なウェブアプリケーションを作成しようとしています。テーブルの設計をしているところなのですが、あまりしっくり来ないのでアドバイスを頂きたいです。

仮にスタッフというテーブルがあるとします。スタッフテーブルには名前、性別、生年月日というカラムがあります。これに階級を付け、その履歴を追えるように変更したいです。つまり、スタッフAさんは1998年にアシスタント、2000年にチームサブリーダー、2005年から現在に至ってチームリーダー。。といったような情報を(必要があれば)クエリで取得できるようにテーブルに変更を加えたいです。

まずは階級名自身が変更、追加になることを考えてランクというテーブルを作成しました。属性は、プライマリキーとランク名です。
イメージ
1 | アシスタント
2 | チームサブリーダー
3 | チームリーダー
4 | ディレクター
...

次に、スタッフテーブルにYEAR1、ランク1、YEAR2、ランク2、YEAR3、ランク3という属性を持たせスタッフテーブルからランクテーブルに参照させようかと考えたのですがこれだと数に限りがあるしなんだかあまり柔軟性がないような気がします。このような場合、階級の変更の回数を気にしなくていいような何らかの新しい別のテーブルを作る方法などありますでしょうか?もしそうだとするとどのような属性を持ったテーブルをつくればよいでしょうか?テーブル設計には色々な方法があるのは承知していますが、もしお薦め出来る(出来れば一般的な)いい方法があればアドバイスお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

スタッフテーブルとは別のテーブルを作ります。

役職履歴テーブルというようなものです。
このテーブルは、

スタッフAさん、1998年、アシスタント
スタッフAさん、2000年、チームサブリーダー
スタッフAさん、2005年、チームリーダー

という感じになります。
    • good
    • 0
この回答へのお礼

なるほどわかりました。ご回答有り難うございました。

お礼日時:2009/06/10 10:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


人気Q&Aランキング