1

我有一本我认为是关于数据库设计的好书(Fred Rolland 的数据库本质),我也阅读了这个网站;http://goo.gl/TxDq4。这两种资源都很棒,但它们使用了涉及客户和公司交互的非常结构化的示例。

我正在尝试创建一个包含对数百张照片的引用的数据库。作为我正在进行的项目的一部分,我希望允许用户创建幻灯片。如果我正确理解了这个理论,这代表了一个“多对多”的关系,我需要用一个“连接表”来打破它。

我无法理解的是这个连接表应该是什么样子,或者它实际执行什么功能。我的感觉是,我试图创建的加入类比拥有“订单线”或类似的更模糊。我的初稿,带有加入课程,如下所示:http: //img28.imageshack.us/img28/2756/photodb2.png

然后我只是对加入课程的实际目标感到困惑。一张幻灯片可以包含多张照片,一张照片可以出现在多张幻灯片中。

对于加入类 SlideshowView,我想我正在创建一个幻灯片的“实例”,其中该特定幻灯片只能包含任何一张照片的一个实例。在这种情况下,我对 SlideshowView 和 Slideshow 之间的关系感到困惑!

事实上,再看一遍,我的图表就更没有意义了……一个 SlideshowView 只能包含一个 Slideshow,但一个 Slideshow 可以是多个 SlideshowView 的一部分?问题是,如果我将关系设为一对一,那不是让 SlideshowView 变得多余吗?

当我从编程的角度考虑这个问题时,我会简单地要求用户选择一个包含许多照片的幻灯片,在这种情况下,幻灯片和幻灯片视图有什么区别?我是否过于复杂了?真是“拧我的瓜”!我们将不胜感激地收到有关如何进行此操作的任何建议。

4

1 回答 1

1

对于多对多关系,你的左手关系是错误的。一张照片可以出现在许多幻灯片中,但您以相反的方式绘制了它 - 实际上,您已经为一对多建模了一个不必要的中间表,这就是为什么它对您来说似乎是错误的。Slideshow 和 SlideshowView 实际上与您绘制图表的方式相同。

用户永远不会“看到”中间的链接表。(S) 他将选择多张照片进行幻灯片放映;对于其中的每一个,链接表中有一行将这些照片链接到新的幻灯片,但不排除它们也出现在其他幻灯片中。对于最终用户,只有照片和幻灯片是可见的。我会亲自调用链接表 SlideshowPhotograph。以下是三张照片和两张幻灯片的 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 回答