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

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

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

911閲覧

SQL 一人のユーザーが複数のグループに属しているというのを表現するには?

yujico

総合スコア25

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/02/01 10:11

前提・実現したいこと

全く初歩的な質問で申し訳ないのですが、どのような検索用語で調べていいのかもわからず、こちらで質問させていただきます。

例として、
社員山田さんが営業と開発のグループに属していたとします。

社員テーブルが
name:"山田"
id:1
group_id:1

グループテーブルが
name:営業
id:1

name:開発
id:2

自分の知っている範囲では、上記のようになると思うのですが、
この時に、山田さんのgroup_idが1かつ2、というデータを持つようにしたいのですが、
これは可能なのでしょうか?
「○○で検索すれば出てきますよ」というような情報でも構いませんので、
よろしくご教示お願いいたします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

このような場合は、中間テーブルを作るのが定跡です。

employee_idgroup_id
11
12

多対多の関係は、この中間テーブルを介して2つの一対多の関係に変換できます。

投稿2019/02/01 10:41

maisumakun

総合スコア145184

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

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

yujico

2019/02/01 11:37

ご回答ありがとうございます。やはり定跡があるのですね。 中間テーブルで検索して知見を深めます。 ありがとうございました。
guest

0

同一人物が複数のグループに属するということですから、

社員グループ テーブル(仮称)で
社員ID
グループID
をPRIMARY KEYとするテーブルを用意します。

投稿2019/02/01 10:38

Orlofsky

総合スコア16415

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

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

0

  • リレーションシップについて

https://fmhelp.filemaker.com/help/17/fmp/ja/index.html#page/FMP_Help%2Frelationships.html%23

ここから 1 対 1, 1 対 多, 多 対 多 の例をご覧ください。

多 対 多 の方法で、1 対 1, 1 対 多 を表すこともできます. (大は小を兼ねるので)

投稿2019/02/01 12:11

katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問