「みんな教えて! 選手権!!」開催のお知らせ

社員への備品貸し出しの管理システムを構築しているのですが、
誰に何を貸し出しているかを把握するテーブルはどのように作成すればいいでしょうか?

貸し出しテーブルと備品テーブルみたいなのがあり、
備品テーブルは備品の個数だけレコードがあるわけではなくて、
1種類につき1レコード、どんな備品なのかを管理するだけのテーブルを考えています。

社員が1種類しか備品を借りないのであれば、

貸し出しテーブル : 社員番号, 備品番号
備品テーブル : 備品番号, 詳細

みたいにすればOKだと思いますが、複数借りた場合だと貸し出しテーブルが1レコードでは管理ができなくなります。
貸し出しテーブルには上記以外にもカラムを複数入れるので、
1レコードで社員番号から借りている備品を抽出したいのですが、
上手くやる方法はないでしょうか?
(上記テーブルを変えたり、別のテーブルを作成するのはOKです。)

よろしくご教示願います。

A 回答 (2件)

アイディア募集ってことでいいのかな?


このシステムの目的がわからないので、的はずしちゃう可能性大なのだけど。

自分だったら

備品マスタ : 備品番号、備品名
備品テーブル : 備品番号、備品シーケンス、購入日(、償却日)
貸し出しテーブル : シーケンス番号、社員番号, 備品番号、備品シーケンス、貸出日(、返却日)

みたいにするかな。
備品管理ってことは、例えばノートパソコンが何台あってそのうち何台貸し出されてるって管理が必要だよね。はじめは10台かもしれないけど、1台壊れるかもしれないし。ノートパソコンには備品番号+備品シーケンスを貼っておけば管理しやすいでしょ。

> 貸し出しテーブルには上記以外にもカラムを複数入れるので、
> 1レコードで社員番号から借りている備品を抽出したいのですが、

これの意味がよくわからないのですが、何故に1レコードじゃないと駄目なのでしょうか?
表示の問題なのでしょうか?
複数抽出で結合して表示ではどうですか?

まぁ、究極をいえば、

貸し出しテーブル : 社員番号, 備品番号、備品シーケンス、貸出日、返却日、 備品番号2、備品シーケンス2、貸出日2、返却日2、 備品番号3、備品シーケンス3、貸出日3、返却日3、 備品番号4、備品シーケンス4、貸出日4、返却日4・・・・

って100個もつくっておけばできないことはないけど
管理が大変だし、絶対止めたほうがいいと思うけど・・・。
    • good
    • 0

ここのカテゴリ通り、PostgeSQLを前提としての質問でしょうか?



ここでは、自分なりに調べた結果などを示し、分からない点を具体的に示して質問することがルールです。仕様を提示するので、「テーブル設計してください」、「SQLを作ってください」といったものは、質問ではなく作業依頼といった判断をされ、折角、具体的なアドバイスをしても、削除されてしまう可能性があります。

本題ですが、「社員管理」テーブル、「備品管理」テーブルを作成し、「貸し出し管理」テーブルを作るのが自然な発送ではないでしょうか?

>1レコードで社員番号から借りている備品を抽出したい

要件が分かりませんが、社員番号でgroup byして、sum + case で備品番号毎とのクロス集計をするというのが、最初に浮かぶ発想ではないでしょうか?

なお、「一括で借り、一括で返却」でなく、追加での借入、部分的な返却があるなら、個数だけの管理では、備品の行方が不明になる可能性があります。
どこまで精密にやるかですが、備品番号+通番 といった方法で、個々に管理する必要があるのでは?
    • good
    • 0

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

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


おすすめ情報