私はER図のカーディナリティを理解しようとしています。まず、都市を訪れる訪問者の簡単な例から始めます。それを考えれば、多くの来場者が多くの都市を訪れることができるので、私はER図を描きました。訪問者は、名前などの属性を持つエンティティです。訪問者は、主キーとしてVisitorIDとCityID、日付などのその他の属性との関係です。都市は、国などの属性を持つエンティティです。これは0を多くの都市に訪問できる多くの訪問者に0を意味します。これは、このER図を持つデータベースでは、3つのテーブルがあることを意味しますか? 1つはビジター、もう1つはシティ、もう1つはVisitCityです。カーディナリティを正しく理解していますか?正しいERダイアグラムでは、1つまたは複数のものをいつ使用するのかをどのように知っていますか?
答えて
はい、関係を正しく記述しました。 N:Mカーディナリティには3番目のテーブルが必要です。
他の情報も含まれています。たとえば、ビジターは一度に2つの場所にいることはできないため、関連する期間が存在する可能性があります。同じ都市で生まれた多くの人々を意味し、1そのため、:たとえば、異なるカーディナリティを持つborn_in
、すなわちN -
ビジターは、市への別の関係を持つことができます(ただし、それぞれが一つだけの街で生まれています!) born_in
はVisitorの属性になります。
はい。 0〜多くの都市を訪問することができます。この場合、あなたは正しいです。あなたがあなたのミドルテーブルvisitCityに名前をつけたとあなたが述べた通りです。
しかし、訪問者が1都市のみを訪問できるデータベースが必要であるとします。あなたは1対多の関係になります。これはあなたがを必要としないことを意味しますのために中間テーブルを使用してください。あなたは2つのテーブルだけで終わるでしょう。
"多くの訪問者が多くの都市を訪れることができる"のような論理的な意味は真実ではないからです。要件は、これらのルールを作成するものです(クライアントが必要とするものを指定したプロジェクト、またはまだ学校に通っている場合は、その記事があなたに割り当てられた論文になります)。データベースを作成する際には、何を使用するかを決定するために、要件を慎重に聴いたり、読み込んだりする必要があります。しかし、あなたが読んでいるから、私はあなたが正しい軌道に入っていると思います:)
はい、そうです。
DBを1NFに保持したい場合は、N×Nカーディナリティに直面するたびに、両方のエンティティのキーを使用して新しいテーブルを作成する必要があります。
- 1. RESTはサービススキーマについてどのように知っていますか?
- 2. ソーシャルネットワークのERダイアグラム、どうすれば改善できますか?
- 3. アンドロイドの1つのアクティビティで複数のレイアウトを使用するにはどうすればよいですか?
- 4. 複数のタイプのデータベースに1つのObjectContextを使用するにはどうすればよいですか?
- 5. 1つのVertex Arrayオブジェクトで複数のストレージレイアウトを使用するにはどうすればよいですか?
- 6. 1つのアクティビティで複数のXMLファイルを使用するにはどうすればよいですか?
- 7. ASP.NET MVC:1つのビューで複数のモデルを使用するにはどうすればよいですか?
- 8. 複数のIronrouterルートで1つのテンプレートを使用するにはどうすればよいですか?
- 9. キュウリ:1つの例で複数のシナリオアウトラインを使用するにはどうすればよいですか?
- 10. 複数のView Controllerで1つのxibを使用するにはどうすればよいですか?
- 11. 1つのIDセレクタで複数のクラスを使用するにはどうすればよいですか?
- 12. 1つの指令で複数のコントローラを使用するにはどうすればよいですか?
- 13. 複数のクラスに1つのSetUpTestFixtureを使用するにはどうすればよいですか?
- 14. 複数のメッセンジャーアプリ/ボットに1つのウェブフックを使用するにはどうすればよいですか?
- 15. 私はどのように2つのバイナリを生成できますか?1つはfortranで、もう1つはcxxで、もう1つはcmakeです
- 16. イベントメソッドに1つまたは複数の値を返すにはどうすればよいですか?
- 17. 2つのdgmlダイアグラムを1つにマージできますか?
- 18. console.ignoredYellowBox使用するプレフィックスはどのように知っていますか?
- 19. MySQL - 使用するインデックスはどのように知っていますか?
- 20. 1つのSQLトリガーで複数のイベントを使用するにはどうすればいいですか?
- 21. 内部関数はこのパラメータについてどのように知っていますか?
- 22. 1つの関数で複数のif文を使用していますか?
- 23. 1つのメソッドでloadLayout()を複数回使用するにはどうすればよいですか?
- 24. djangoで複数のフォームに1つのモーダルを使用していますか?
- 25. 複数の列にわたって重複を見つけるにはどうすればよいですか?
- 26. 複数の関数または構造体に対して1つのTemplate文を使用するにはどうすればよいですか?
- 27. xavier_initializer()はアクティベーションをどのように知っていますか?
- 28. func2はどのようにコンテキストを知っていますか?
- 29. aPythonのリストに1つのアイテムまたは複数のアイテムがあるかどうかを知る
- 30. Django:複数のグループを1つのファイルにまとめるにはどうしたらいいですか?
正規here.上
詳細情報は実際には、多くの関係を1用のジャンクションテーブルを使用し__can__。あなたがそれをすることはできないと言ってはいけません。 –
これは事前に学習するものです。読めるように、彼はDBとERDの初心者です。少しずつ少しずつ学ぶことは良いことです。 – SunnlightBro
質問と回答はOP以外にも多くの読者を支援することになっています。 __can't__の代わりに__don'tする必要はないと言っていつでも言い換えることができます。 –