people
というテーブルがあったときに、Aliceさんに関連する人物としてBobさんとCharlieさんがいるということを表現したい場合、以下のようにすればいいのではないかと思いました。
でもこれだと、Bobさんに関連する人物としてAliceさんが登録できるので、データが冗長になってしまいます。うまく表現する方法があれば教えてください。
環境はMySQLで実現したいです。
回答6件
あなたの回答
tips
プレビュー
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
データベース設計はデータベースの論理的や物理的な部分を特定する工程です。
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
データベース設計はデータベースの論理的や物理的な部分を特定する工程です。
0グッド
0クリップ
投稿2020/02/20 03:58
people
というテーブルがあったときに、Aliceさんに関連する人物としてBobさんとCharlieさんがいるということを表現したい場合、以下のようにすればいいのではないかと思いました。
でもこれだと、Bobさんに関連する人物としてAliceさんが登録できるので、データが冗長になってしまいます。うまく表現する方法があれば教えてください。
環境はMySQLで実現したいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/20 04:05
回答6件
0
EMP 従業員テーブルに EMPNO 従業員NO, MGR マネージャー
で上司やさらにその上の上司を調べるSQLを書くという、[関連する人物]の勉強ができます。
再帰呼び出しもあるのでお試し下さい。
VARCHAR2型はOracle独自の可変長文字列用のデータ型なのでVARCHAR型に直すなどの必要があります。
投稿2020/02/20 05:03
総合スコア16419
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
AliceとBobさんの関係が(Alice,Bob)があったとして(Bob, Alice)が登録できるので冗長だという事ですね。
冗長なのは順列であるからで、組合せのみにしたいのならルールが必要であり、それはテーブルのリレーションではどうしようもありません。
組合せのみの登録にするには、(Alice,Bob)や(Bob, Alice)の登録の際、その組み合わせを昇順で並べ替えた上で登録済みのデータとチェックするなどの仕組みが必要になります。
投稿2020/02/20 04:40
編集2020/02/20 09:37総合スコア25430
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/20 09:20
2020/02/20 10:26
2020/02/20 15:34
0
relationテーブルでは、
people_id_a
と people_id_b
を定義し、アプリケーション側では、
のはいかがでしょうか。
投稿2020/02/20 04:06
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。