電子書籍の厳選無料作品が豊富!

お世話になります。

複数の工房(Labo)と 複数の職人(Craftsman) が多対多の関係で存在していて
特定の職人が作製した作品(Product)の管理をするデータベース設計を考えています。

職人が工房(Labo)を点々と代わってもその時に所属していた工房で作成した作品について
誰がいつどこの工房で作った作品かをわかるようにしたいと思います。

このような場合、どのようにデータベース設計をすれば設置や検索しやすくなるでしょうか?
(尚、工房や職人は、関わった作品に限定して、作品詳細情報を参照できるようにしたいと考えています。)

以下の様な、中間テーブルだけで対応可能でしょうか?

ご多忙のところ大変恐縮ですが、
履歴の持ち方の設計等についてご教示いただければ幸いです。

宜しくお願い致します。<(_ _)>


・Labosテーブル
-----------------
工房id  labo_id UK
名称   labo_name
作成日時  created_at
更新日時  updated_at


・Craftsmansテーブル
-----------------
職人id  craftsman_id UK
名称   craftsman_name
作成日時  created_at
更新日時  updated_at


・Productsテーブル
-----------------
製品id    product_id  UK
名称     product_name
職人id    craftsman_id  FK
工房id      labo_id
作成日時   created_at
更新日時   updated_at



中間テーブルとして

・Craftsman_Labosテーブル
-----------------
id     craftsman_labos_id UK
職人id   craftsman_id   FK
工房id      labo_id   FK
作成日時   created_at


・Craftsman_Products テーブル
-----------------
id     craftsman_labos_id UK
職人id   craftsman_id  FK
製品id   product_id   FK
作成日時   created_at

質問者からの補足コメント

  • どう思う?

    ご教示ありがとうございます。

    多対多ということで中間テーブルが必要なのだと思っていました。
    作品は職人が名前を登録することで完結するので
    Productsテーブルをトランザクションテーブルとして扱うということですね。
    以下でいかがでしょうか?

    マスタテーブル--------------------------------
    ・Labosテーブル
    ・Craftsmansテーブル

    トランザクションテーブル------------------
    ・Productsテーブル
    製品id    product_id  UK
    名称     product_name
    職人id    craftsman_id  FK
    工房id    labo_id    FK
    登録日時   created_at
    更新日時   updated_at

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/09/21 23:02

A 回答 (2件)

一つの製品が、「一人の職人、かつ、工房も一か所」で完結するのであれば、それで事足りると思います。



でも、着手日時とか完了日時はいらないのかな?
    • good
    • 0
この回答へのお礼

丁寧にご教示いただき ありがとうございます。
完成時のみの登録操作なので
たぶん大丈夫かと存じます。

お礼日時:2021/09/22 12:07

中間テーブル必要ですか?


あと、トランザクションテーブルが見当たりませんが。

製品が完成するまでの履歴テーブルを作成すればいいと思います。
そのテーブルに、工房と職人の情報を載せればいい。
着手開始日、終了日も必要か。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご教示ありがとうございました。

職人が登録したら完結するので
中間テーブルを無くし トランザクションテーブルとして

Products テーブル を設置すればよいということですね。。
-----------------
製品id   product_id   UK
職人id   craftsman_id  FK
工房id   labo_id     FK
作成日時  created_at

お礼日時:2021/09/22 11:20

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

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