1

私はデータベース設計(FredRollandによるEssenceof Databases)に関する優れた本であると信じているものを持っており、このWebサイトも読んだことがあります。http://goo.gl/TxDq4。これらのリソースはどちらも優れていますが、顧客と企業が相互作用する非常に構造化された例を使用しています。

何百枚もの写真への参照を含むデータベースを作成しようとしています。私が取り組んでいるプロジェクトの一環として、ユーザーがスライドショーを作成できるようにしたいと考えています。私が理論を正しく理解していれば、これは「多対多」の関係を表しており、「結合テーブル」で壊す必要があります。

私が頭を悩ませることができないのは、この結合テーブルがどのように見えるべきか、またはそれが実際にどのような機能を実行するかです。私が作成しようとしている参加クラスは、「オーダーライン」などよりも曖昧だと感じています。クラスに参加している私の最初のドラフトは、次のようになります:http: //img28.imageshack.us/img28/2756/photodb2.png

そして、私は参加クラスで実際に何を達成しようとしているのか混乱します。スライドショーには多くの写真を含めることができ、写真は多くのスライドショーに表示できます。

参加クラスのSlideshowViewを使用して、スライドショーの「インスタンス」を作成していると思います。この特定のスライドショーには、1つの写真のインスタンスを1つだけ含めることができます。この場合、SlideshowViewとSlideshowの関係について混乱しています。

実際、これをもう一度見てみると、私の図はさらに意味がありません... SlideshowViewには1つのSlideshowしか含めることができませんが、Slideshowは複数のSlideshowViewの一部にすることができますか?問題は、私が1対1の関係を作る場合、それはSlideshowViewを冗長にしませんか?

プログラミングの観点から考えると、多くの写真を含むスライドショーを選択するようにユーザーに依頼するだけです。その場合、スライドショーとスライドショービューの違いは何ですか?私はこれを過度に複雑にしていますか?本当に「メロンをひねる」!これをどのように進めるかについてのアドバイスはありがたいことに受け取られます。

4

1 に答える 1

1

多対多の関係の場合、左側の関係は間違った方法です。1枚の写真が多くのスライドショーに表示される可能性がありますが、これを逆に描いています。実際には、不要な中間テーブルを使用して1対多をモデル化しているため、間違っているように見えます。スライドショーとスライドショービューは、実際には、ダイアグラムを描画した方法と実質的に同じです。

ユーザーは、中央のリンクテーブルを「見る」ことはありません。(S)彼はスライドショーのために複数の写真を選択します。これらのそれぞれについて、他のスライドショーにも表示されることを排除することなく、それらの写真を新しいスライドショーにリンクするための行がリンクテーブルに表示されます。エンドユーザーには、写真とスライドショーのみが表示されます。個人的にはリンクテーブルをSlideshowPhotographと呼んでいます。これが3枚の写真と2枚のスライドショーのID値で、両方のスライドショーに写真109が表示されています。

Photograph    | Link                        | Slideshow
ID            | PhotographID SlideshowID    | ID
107           | 107          23             | 23
108           | 109          23             | 24
109           | 109          24             |
于 2012-11-04T20:33:11.287 に答える