テーブル設計について

このQ&Aのポイント
  • 簡素なウェブアプリケーションを作成しようとしています。テーブルの設計をしているところなのですが、あまりしっくり来ないのでアドバイスを頂きたいです。
  • 階級を付け、その履歴を追えるようにテーブルに変更を加えたいです。
  • 階級の変更の回数を気にしなくていいような何らかの新しい別のテーブルを作る方法などありますでしょうか?
回答を見る
  • ベストアンサー

テーブル設計について

簡素なウェブアプリケーションを作成しようとしています。テーブルの設計をしているところなのですが、あまりしっくり来ないのでアドバイスを頂きたいです。 仮にスタッフというテーブルがあるとします。スタッフテーブルには名前、性別、生年月日というカラムがあります。これに階級を付け、その履歴を追えるように変更したいです。つまり、スタッフAさんは1998年にアシスタント、2000年にチームサブリーダー、2005年から現在に至ってチームリーダー。。といったような情報を(必要があれば)クエリで取得できるようにテーブルに変更を加えたいです。 まずは階級名自身が変更、追加になることを考えてランクというテーブルを作成しました。属性は、プライマリキーとランク名です。 イメージ 1 | アシスタント 2 | チームサブリーダー 3 | チームリーダー 4 | ディレクター ... 次に、スタッフテーブルにYEAR1、ランク1、YEAR2、ランク2、YEAR3、ランク3という属性を持たせスタッフテーブルからランクテーブルに参照させようかと考えたのですがこれだと数に限りがあるしなんだかあまり柔軟性がないような気がします。このような場合、階級の変更の回数を気にしなくていいような何らかの新しい別のテーブルを作る方法などありますでしょうか?もしそうだとするとどのような属性を持ったテーブルをつくればよいでしょうか?テーブル設計には色々な方法があるのは承知していますが、もしお薦め出来る(出来れば一般的な)いい方法があればアドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#110201
noname#110201
回答No.1

スタッフテーブルとは別のテーブルを作ります。役職履歴テーブルというようなものです。 このテーブルは、 スタッフAさん、1998年、アシスタント スタッフAさん、2000年、チームサブリーダー スタッフAさん、2005年、チームリーダー という感じになります。

rio_grande
質問者

お礼

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

関連するQ&A

  • テーブル設計について

    先日明解なアドバイスを頂いたばかりなのですが、もう一つだけ別件で疑問点が出たので質問致します。 簡素なウェブアプリケーションを作成しようとしています。テーブルの設計をしているところなのですが、どのようなテーブル設計にすればよいのか見当がつかないのでアドバイスを頂きたいです。 仮にスタッフというテーブルがあるとします。今のところスタッフテーブルには名前、性別、生年月日というカラムしかありません。このシステム、「シフトスケジュール」という考え方を盛り込みたいです。例えば、2009年6月1日はAさん、Bさんがスタッフとして勤務し、2日はBさんとCさんが勤務する。。といったようなアルバイトのイメージです。 この場合、「シフト」といった新しいテーブルを作った方がいいような気がするのですが、一体どのようなカラムをどのような型で用意すればいいのかわかりません。どんなシステムにしたいかに依存するとは思いますが、これから作ろうとしているシステムは業務用でなく自己学習用なので最低限必要な簡素なレベルにしたいのです。ざっくりな感じで構わないのでカラム、テーブルのアドバイスを頂けると助かります。ちなみにMySQLを使用する予定です。

  • データベースで変更の多いテーブルの設計

    データベースを設計しています。 あるテーブルに関して、項目(列)が50個くらいあるのですが、これらのうち20個くらいの列が頻繁に変更があり、データの履歴が必要になるため、テーブルを再設計しようと考えています。 現在は変更があるたびにテーブル全体を別テーブルにコピーして、寄せています。 このような場合、何かよい設計方法はあるでしょうか?

  • 設計・開発業務のマネジメントとは何か?

    設計・開発業務のマネジメントとは何か?という漠然とした疑問を持っています。 まだ私はマネージメントされる側なので、あまり気にすることはないのですが。 新しい仕事が期初に発生すると、計画を立てるのですが担当者が立てて、それをチームリーダーに見せますが特に何もいわれません。 週に一度、業務を担当者からチームリーダー、チームリーダーから部課長に報告しますが、チームリーダーは部下の書いた報告書をコピペして部課長の前で読んでいるだけだそうです。部課長は「突っ込んでみても、わからないとしかいわないから、君のところに来たんだけど」と担当者の私のところに来ます。 チームリーダーからは、残業の申請をしてくれというようなことしか言われたことはありません。チームの人の割り当てなども、先輩がしております。 しかしながら、チームリーダーの週イチ業務報告には「マネージメント を行った」と書いてあります。 このチームリーダーは何を持ってマネージメントしたといっているのでしょうか?そんなこんなで、私も部課長と直接やり取りをするようになったので、余計わからなくなってしまいました。 まわりからも「お宅のチームリーダー何やっているの?」と聞かれて答えに窮しています。困ったときも、先輩や部課長に相談し(チームリーダーに相談しろといわず話を聞いてくれる)10年前は新製品を1つ量産化までこぎつけたらしいのですが、それ以降何をやっていた人なのかはあまり知られていないようです。 よろしくお願いいたします。

  • データを西暦ごとにテーブルに分けたい

    30万件ほどデータがあるテーブルtableがあります。 フィールドyearにそのデータが作成された西暦が4桁のint型で記されているのですが、 これを1年ごとに分割してテーブルを生成したいです。 ---------- table (id はオートインクリメント) id name year info 1 aaaa 2011 aaaaaaaa   2 bbbb 2012 bbbbbbbb 3 cccc 2010 ccccccc 4 dddd 2012  dddddddd 5 eeee 2011  eeeeeee : : ↓ table2010 id name year info 1 cccc 2010 ccccccc : : table2011 id name year info 1 aaaa 2011 aaaaaaaa 2 eeee 2011  eeeeeee : : table2012 id name year info 1 bbbb 2012 bbbbbbbb 2 dddd 2012  dddddddd : : ------------ データが数十件ならphpmyadminを駆使するのですが、今回はデータ量が多いこともあり、 これらを上手に分ける方法となると現在の私の力では難しいです。 このような形でテーブルを分割する方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • グラフとデータテーブルの順番

    データテーブルで、例えば月毎の累計目標値を上段に表示させ、各ランクA-Cの予測値累計を順次その下に表示するようにした場合、目標値の折れ線が最後面になってしまいます。目標値なので最前面になるようにし、ランクの高いものから後面に表示するようにしたいのですが、『データの選択』で系列の順番を変更し、最前面にすると、データテーブルの目標値が最下段になってしまいます。 データテーブルの順番に関係なくグラフの表示順番は変更できないのでしょうか? 積み上げ棒グラフでも同様なことがありフレキシブルにできません。 方法がありましたらご教授願います。

  • 建築設計事務所の仕事について質問です。お願いします

    大学1年で建築を学んでいます。アトリエの設計事務所で模型やプレゼンの手伝いをしています。将来はアトリエで働きたいと思っています。まだ、気軽に聞ける先輩が大学にいないのでこちらで質問させてください。 自分の手伝っている事務所にはスタッフの方が何人かいます。5年目、7年目と長く働いているのですが、住宅の設計は代表の方がしています。基本構想やプランの細かい部分まで代表の人がトレペに書いて、スタッフはそれをCADにして、見てもらい変更していてスタッフの人は意匠には関わってません。実施設計や工務店の段取り、役所の調整などをしています。アトリエのスタッフとしての仕事はどういったものになるのでしょうか。スタッフというのは意匠には関わらないのかな・・・と疑問を持っています。このアトリエしか知らなのでほかでもやってみればいいだろっていうのはあると思いますが、一般的にはアトリエのスタッフの仕事とはどういうものなのでしょうか。手伝っているのは有名なアトリエではなく、住宅などメインに手がけている事務所です。仕事が無いわけではなく、それなりに忙しくしています。 無礼と生意気を言っていることは重々承知の上で質問させてください。 よろしくお願いいたします。

  • パズドラ攻略

    パズドラ無課金者でランク105です。所持しているモンスターは、火属性ではフレイ、エキドナ水属性ではルカ、オーロラドラゴン、ミニ孫権、緑属性は緑関羽、緑ヴァルキリー、アルラウネ、ミニ劉備、光属性はメタトロン、光カーリー、ナッパ、ミニ大喬小喬、闇属性は 逆心の神魔王ルシファー、ミニ呂布といった面々です。ナッパやオーガをリーダーにする耐久パで臨んだりもしましたが、 どうしても神々の神域の第1ステージの神を守りし龍を 攻略できません。リーダーがナッパの耐久パやミニ呂布をリーダーにしたりもしましたがメテオボルケーノドラゴンでやられてしまいます。 所持しているモンスターがショボい上での質問です。誰をリーダーにしてサブにして、フレンドを誰にすれば良いのかアドバイスをお願いします。

  • テーブル設計の際の縦持ちについて

    今度会社で新しく 業者が開発したWeb上の入力サイトに入力されたデータを開発業者からcsvで1件のデータが30項目程あるものを受取り、それをインポートしてうちの会社で必要な事務項目(会社での計上日など)を追加で入力するものを作るように言われました。 簡単にテーブルについて、簡単に説明すると、 ID    名前        住所         金額   寄付内容      本社との関係 … 1    山田太郎     東京都新宿区   3000   改装費         OB 2    佐藤華子     東京都中央区   5000   野球チーム応援   社員 というようなデータが来ます。 この寄付の内容というものが、 寄付を呼びかけるその時々で(Webで入力させる項目が) 変わるので、その変わった内容をAccessにインポートしても 問題ないような仕組みにするように言われました。 例)2012年の寄付募集時: ロボット開発費のための寄付   電子機器開発費のための寄付     2014年の寄付募集時:  野球部を応援するための寄付  卓球部を応援するための寄付   2016年の寄付募集時:  北海道工場新築のための寄付  山梨工場建て替えのための寄付  この件について、会社の先輩に相談したところ、横持ちにすると、カラム追加する必要が あることは今後明らかなので、そのような場合は縦持ちにすると良い。 とアドバイスをされました。 そこで、「テーブル 設計 縦持ち」 「データベース 縦持ち」 等で検索してみましたが、縦持ち についてわかりやすく説明されているサイトや本を 見つけることができませんでした。 もし縦持ちについて、易しく記載されているHPや本があればお教え頂けないかと思い、質問させて頂きました。 どうぞよろしくお願い致します。

  • 偽装請負 残業の規制の方法について

    私は設計会社の仕事を委託(請負)しているA会社へB社から派遣されている協力社員です。 現場は設計会社の中にある、A会社の事業所で働いています。 事業所といっても壁ひとつない状態です。 民法上では指揮命令者以外から仕事を指示できないとありますが 実際の現場では、忙しさに関係なく直接指示が来ます。 それはよくあることだと思って特に黙っています。 残業についてですが 特に希望が無ければ、できる時間まで残業(終電の時間とか)が普通になっています。 仕事の指示も21:00以降でも来たりします。 サブリーダーに愚痴ってみたのですが 私たちがもっと早く仕事を提出すればいい話だと一蹴されました。 サブリーダーは好い人?なので月100時間以上残業していますが、 36協定で収まるように数字を改ざんし残業しています。 指揮命令者もサブリーダーに大丈夫?と一応聞きますが 笑い話で終了しています。 設計会社の残業の多さは止められないとしても 委託(請負)の会社へ派遣されている自分が同じような痛みを追うのはなんだか納得できません。 しかし、私がさっさと帰ればサブリーダーや他のスタッフに仕事がまわり迷惑も掛かります。 こういった場合、何かよい対処方法はありますか? よろしくお願いいたします。

  • 経理にかかわったことのある方にお伺いします。

    求人サイトで、これまで経験してきたポジションに関してチェックする項目がありました。    経験ポジション ▽ 経験なし  実務経験1年未満  実務経験1~3年  実務経験3年以上  ・経理部門マネジャー  ・経理スタッフ(リーダー)  ・経理スタッフ(メンバー)  ・経理事務、アシスタント ここで思ったのですが、経理スタッフと経理事務、それにアシスタントとはどう違うのでしょうか? お分かりになる方、どうかお答えください。