はじめまして。
データベースの設計で困っています。
例えば、
学生[学生A / 学生B / 学生C]
部活[サッカー / 野球 / テニス]
とデータがあり、学生は部活のどれかに属します。(二重所属可)
これをデータベースで1つのテーブルで表すと、以下のようになると思うのですが、どちらのカラムも重複が発生します。
使用上問題なさそうなのですが、このような設計は良くないですか?
┌-------┬------┐
| 部活 | 学生 |
├-------┼------┤
|サッカー| 学生A |
├-------┼------┤
|サッカー| 学生B |
├-------┼------┤
| 野球 | 学生A |
├-------┼------┤
| テニス | 学生C |
└---------------┘
詳しい方、ご教授下さいますようお願いしますm(_ _)m
No.5ベストアンサー
- 回答日時:
>これなら、所属部活(学生番号、部活番号)の学生番号が何度出現しても、部活番号が何度出現しても、問題ないということですよね??
問題ありません。
通常N:Nのリレーションシップの場合は、今回のようにします。
もちろん第3のテーブルの主キーは学生番号+部活番号です。
したがって、学生番号+部活番号の組み合わせは重複できませんので念のため。
No.3
- 回答日時:
学生表、部活表が存在する上で第3のテーブルを作るという意味で書かれているのであれば、問題ありません。
そうでなくて、学生表・部活表の代わりに上記のようなテーブルを作ろうとされているのであれば、
このような文字列を主キーにするデザインはいいデザインとはいえないでしょう。
学生表、部活表は通常カラムは1つではないはずです。
例えば学生 (学生番号、氏名、住所、クラス)、部活(部活番号、部活名、担当教員)など。
ただ、仮にカラムが1つしかなくても、
学生(学生番号、氏名)
部活(部活番号、部活名)
所属部活(学生番号、部活番号)
とする方が通常かと思います。
回答ありがとうございます。
第3のテーブルになります。
これなら、所属部活(学生番号、部活番号)の
学生番号が何度出現しても、
部活番号が何度出現しても、
問題ないということですよね??
No.2
- 回答日時:
学生テーブルにキーと学生名、部活テーブルにキーと部活名
まず上述の二つのDBを作ります。
次に学生キーと部活キーを持つ三つめのDBを作ることで、
二つのDBを関連づけられます。
このDBは学生キーの重複を許可せず、部活キーの重複は許可します。
こんなところでいかがでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Server 2005 Expressで営業...
-
Accessの帳票フォームで重複デ...
-
アクセスのテーブルを分ける理...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessのクエリでデータの入力...
-
エクセルグラフの凡例スペース
-
作番ってどういう意味でしょうか?
-
Access テキスト型に対する指定...
-
Accessのフィールド数が255しか...
-
Accessでコードを入れると名前...
-
セルの右クリックで出る項目を...
-
Oracleのビュー作成時に「指定...
-
Accessでテーブルの値をテキス...
-
Accessでテーブル名やクエリ名...
-
ACCESSのクエリで集計で、先頭...
-
INSERT INTO ステートメントに...
-
accessで重複を防ぎたい
-
Access又はExcelで256項目を超...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessの帳票フォームで重複デ...
-
あるフィールドの最大値を条件...
-
アクセスのテーブルを分ける理...
-
usingの意味がわからないのですが
-
MS ACCESS 商品価格変更時の該...
-
ACCESS VBA クエリを開く
-
Accessフォーム全レコードをPDF...
-
Access2021 「ISNULL関数には引...
-
Accessでクエリの作成、多対1対...
-
正規化すると遅くなるというの...
-
SQLサーバ、INSERTで自動採番
-
SQL EXISTS演算子について
-
ファイルメーカー 同一IDと日付...
-
どうやって正規化するかを教え...
-
JOIN句の記述の違いによるパフ...
-
曜日を表す項目
-
accessでの請求管理について
-
【Accessクエリ】存在しないデ...
-
正規形の定義
-
重複するデータのデータベース...
おすすめ情報