質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

3487閲覧

ER図リレーションの書き方について

kanetugu_70e

総合スコア100

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/05/14 11:08

編集2019/05/14 11:17

質問内容

以下2つのテーブルをER図で表現する場合どのようにするのが一般的なのでしょうか?(参考のリレーションはスマホからの入力の為若干分かりづらいですが、IE記法に似せたつもりです)

[部署テーブル]
・部署名(PK)
・社員ID(FK) ←部長のid

[社員テーブル]
・社員ID(PK)
・社員名
・部署名(FK)

※条件
・部署には必ず1人以上社員がいる。
・社員は部署に所属していないこともある。(新入社員などのイメージ)

質問に対する返答として、以下の内どれが一般的なものなのかという事が知りたいです。
①.同じテーブル間のリレーションは1本で表現する。
(ex.)
部署-|O------------|*-社員

②.〃を2本に分けて表現する
(ex.上側は部署テーブルを主観としており、部署レコードに対して社員レコードが複数あるの意。
下側は社員テーブルが主観で、社員レコードに対し部署が0または1の意)
部署-|--------------|*-社員
-|O--------------|-

③.書き手による

質問背景

これまで基本情報や応用情報を通して、ER図のリレーションは1本で表現するものだと思っておりました。
というのもカーディナリティを読み解く時は、主観とするテーブル側のレコードは"1"とし、対するテーブルのレコード数が0,1,多...といったカーディナリティを持つという意味で表現し、主観とするテーブルを相互に読み換えるものであるといった理解でした。(つまるところ、相手側の多重度しか描かないものである)
しかし、業務でER図を扱うようになり、過去のER図を見たところ同テーブル間に2本のリレーションがあるものを発見しました。(前述②の様なもの)
システム仕様上の意味(リレーション)は分かるのですが、表記上2本あるのは非常に分りづらいのでは無いかと思い、今回質問させて頂きました。(システムを知らない人がER図だけを見た時、どちらのリレーション及びカーディナリティがどちらのテーブルを主観で見ているか分からない為)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

過去のER図を見たところ同テーブル間に2本のリレーションがあるものを発見しました。(前述②の様なもの)

思うに、部署に対して社員を配属するケースと、社員を登録して部署を決定するケースの2通りがありそれを表現したかったのじゃないかと思います。

一般的には①で、ER作成用のツールも①以外は見たことは無いですね。

投稿2019/05/14 12:12

編集2019/05/14 12:14
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanetugu_70e

2019/05/14 13:19 編集

ご回答頂きありがとうございます。 記載の内容はあくまで例であり、私が実際に見たものとは異なります。(私自身の業界経験が浅く、どこまで情報を出していいか判断に迷った為、思いつきの例です) ただ、部署テーブル(に相当するもの)は必ず先に作成され、後から社員IDが割り振られるようになっています。この部署テーブルの社員ID(部長)が書き換えられる頻度が比較的多い為、あえてリレーションを2つ書いていたものと思われます。(実際のテーブルではカラム名からイメージしにくい事も理由の1つと思われます)説明不足で申し訳ございません。 いずれにせよ、"同テーブル間に2本のリレーションを書く事が有るか無いか"、といった確認をさせて頂きたかったので、①が一般的であるとの回答を頂き少し安心致しました。 先のbcaa様のご回答にもございますが、結局は表現の話であり場合によると思いますので、柔軟に対応していきたいと思います。 今回、私の質問の意図に最も合う回答を頂いたsazi様をベストアンサーにさせて頂きます。 皆様早急にご対応頂きありがとうございました。
guest

0

丸投げみたいな回答ですが、mysqlworkbenchを使って作って出来た図を参考にするとかはどうですか?
今はER図使う事無いんですが、作ってた頃は都度そこの環境(メンバー)に合わせて作ってましたよ。ベースの書き方こそあれ、目的は相手に伝えることなので伝わればなんでもいいやって感じで

投稿2019/05/14 12:00

bcaa

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanetugu_70e

2019/05/14 12:34

ご回答頂きありがとうございます。 なるほど...そんな手もあるのですね! 何でもそうですが、結局は状況や書き手によって変わるものですし、柔軟に対応していきたいと思います。
bcaa

2019/05/14 12:47

そうですそうです。正しい書き方をしなきゃいけないのはプログラムだけです。(もちろんSQLも) ER図とは言え余りにも個人プレイな書き方はNGだと思うけど、書いてる自分ですら混乱しそうな書き方をするよりは一本線だけ書いて繋げて、その個所に対して普通に日本語で補足説明をペラっと書いておけばいいです。 正しい書き方は職場の人たちがレベルアップしてからでもいいじゃない?
kanetugu_70e

2019/05/14 13:18 編集

今回は2本のリレーションとカーディナリティのみ描かれており、補足説明のようなものが何も無かった為、システムを知らない人間がER図だけをぱっと見た時に、判断が出来ないものでした。 今後自身がE-R図作成する際は、リレーションを1本、2本などのいずれにするにしても今回の件を反面教師として、おっしゃる様な補足等を用いて分かり易く描いていきたいと思います。 返答のフォローまで頂き誠にありがとうございました!
guest

0

5分で理解できるER図の書き方5ステップ 5分では理解は無理だけど、きちんと読むと良いでしょう。

投稿2019/05/14 11:20

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanetugu_70e

2019/05/14 11:34 編集

ご回答頂きありがとうございます。 ご記載頂いたサイト様は既に拝見しておりまして、これだけ見ると質問に記載した"同じテーブル間"の表現は①の表記が正しいものと思っており、これまでもその考えでおりました。 ですが、今回職場で見たものが②の表現であった為、私の認識が間違っているのか、ER図作成者の認識が誤っているのか分からない状態です。 本来職場の人間に聞くものですが、現在経験豊富な上司に聞く事が出来ない状態であり、周りにいる技術者が若手かつER図作成に関わっていた訳では無い為、今回質問させて頂いております。
kanetugu_70e

2019/05/14 13:08

申し訳ございません。 私の技量不足もある為か、私の質問とOrlofsky様の回答が噛み合っていない気がします。 とはいえ、おっしゃる通り実際にツールを使用して自身で作成してみるのが一番かもしれません。 頂いたソフトも視野に入れ一度作成してみたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問