-PR-
締切済み

Visioで複数のフィールドと関連付けを行うには?

  • すぐに回答を!
  • 質問No.74649
  • 閲覧数884
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 32% (45/139)

 urizakaです。
 現在、VISIO5.0Professionalを使ってデータベースのER図を作っています
が、その際にあるテーブルのフィールド(PrimaryKey)と関連付けたテーブルに
おける複数のフィールドを関連付けたいと考えておりますが、普通にやると関連
付けられるのは一つだけのような気がするのですが、何とか複数のフィールドを
関連付けることはできるでしょうか?
 具体的にいうと、従業員マスターテーブルの従業員コード(主キー)を外部キーとして仕事トランザクションテーブルに持ってきて、監督者、指示者、従事者、と
して使いたいと考えているのですが・・・何かいい方法があるでしょうか?
 すみませんが、教えてください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 42% (79/186)

再びです。

従業員テーブル 仕事トランザクションテーブル
---------- --------------
|ID|従業員| |ID| 仕事 |FK|
---------- --------------
|1|Aさん| |1|監督者|1|
|2|Bさん| |2|指示者|1|
|3|Cさん| |3|従業者|2|
---------- --------------
というイメージでしょうか?
これなら、関連は1つですよね。(ということは違う・・・)

もしかして、多対多のリレーションなのではないでしょうか?
それならば、交差エンティティを作ってください。(私がとんでもない勘違いをしているような気もしますが・・・)
交差エンティティの例
交差テーブル
------------
|従業員|仕事|
------------
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 1 |
------------
補足コメント
urizaka

お礼率 32% (45/139)

こん××わ、msystemさん。
ええと、私のやりたいことですが、違います。

従業員マスタ
------------------
名前   ID
------------------
A     1
B     2
C     3
==================

仕事トランザクションテーブル
_____________________
仕事名 |監督者  指示者  従業者
-----------------------------------------
準備    1    2    3
調査    2    3    1
実行    3    2    1
---------------------

 です。
 今のところ、マスターからトランザクションに「監督者」用、
「指示者」用、「従業者」用の関連を作って繋げていますが、これだと
線が何本にもなってしまって非常に美しくないもので…
投稿日時 - 2001-05-12 02:19:11


  • 回答No.2
レベル10

ベストアンサー率 42% (79/186)

またまた再びです。

その構造なら、2つのテーブル間に3つの関連で仕方がないですね。

でも、もっと正規化すれば、美しくはなります(?)

従業員マスターテーブルはそのままで、それ以外に3つテーブルを作ります。

一つは役割テーブルで次のような構造です。
---------
|ID| 役割 |
---------
| 1| 監督者|
| 2| 指示者|
| 3| 従業者|
---------
次に仕事テーブルです
---------
|ID| 仕事 |
---------
| 1| 準備 |
| 2| 調査 |
| 3| 実行 |
---------
そして最後は、今までの3つのテーブルの交差テーブルです。
-----------------
|従業員ID|役割ID|仕事ID|
-----------------
|  1  |  1 |  1 |
|  2  |  2 |  1 |
|  3  |  3 |  1 |
|  1  |  3 |  2 |
|  2  |  1 |  2 |
|  3  |  2 |  2 |
|  1  |  3 |  3 |
|  2  |  2 |  3 |
|  3  |  1 |  3 |
-----------------(すべての列で複合主キーを設定する)

完全に正規化していますので、E-R図は非常にきれいだと思います。(Oracleならスタークエリが使えます)
ただ、非正規化の例としてurizakaさんの構造は非常にいいと思います。(パフォーマンスは最高でしょう)ただ、汎用性を考えたり、美しさを考えるなら、上記のようにするか、または役割テーブルと仕事テーブルを引っ付けた非正規化がいいのではと思います。

Visioで2つ以上の関連は、リレーションを複数ドラッグして、urizakaさんの見つけた右クリックで一つ一つ関連を作るしかないのではないでしょうか?
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ