Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为照片设计一个(简单的)关系数据库?_Database_Database Design_Relational Database - Fatal编程技术网

Database 为照片设计一个(简单的)关系数据库?

Database 为照片设计一个(简单的)关系数据库?,database,database-design,relational-database,Database,Database Design,Relational Database,我有一本我认为是关于数据库设计的好书(弗雷德·罗兰的《数据库的本质》),我也读过这个网站。这两种资源都很好,但它们使用非常结构化的示例,涉及客户和公司的交互 我正试图创建一个数据库,其中包含数百张照片的参考资料。作为我正在进行的项目的一部分,我希望允许用户创建幻灯片。如果我正确理解这个理论,这代表了一种“多对多”关系,我需要用一个“连接表”来打破这种关系 我无法理解的是这个连接表应该是什么样子,或者它实际执行什么功能。我的感觉是,我试图创建的加入类比拥有“订单行”之类的东西更模糊。我的第一个草稿

我有一本我认为是关于数据库设计的好书(弗雷德·罗兰的《数据库的本质》),我也读过这个网站。这两种资源都很好,但它们使用非常结构化的示例,涉及客户和公司的交互

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

我无法理解的是这个连接表应该是什么样子,或者它实际执行什么功能。我的感觉是,我试图创建的加入类比拥有“订单行”之类的东西更模糊。我的第一个草稿是一个加入的类,看起来是这样的:

然后我就对我加入这个班的目的感到困惑。幻灯片可以包含许多照片,并且照片可以出现在许多幻灯片中

Photograph    | Link                        | Slideshow
ID            | PhotographID SlideshowID    | ID
107           | 107          23             | 23
108           | 109          23             | 24
109           | 109          24             |
随着SlideshowView类的加入,我想我正在创建一个幻灯片的“实例”,其中特定的幻灯片只能包含任何一张照片的一个实例。在这种情况下,我对SlideshowView和Slideshow之间的关系感到困惑

事实上,再看一遍,我的图表就更没有意义了。。。幻灯片视图只能包含一个幻灯片,但一个幻灯片可以是多个幻灯片视图的一部分?问题是,如果我把这种关系变成一对一的关系,幻灯片视图不是多余的吗


当我从编程的角度考虑这个问题时,我会简单地要求用户选择一个包含许多照片的幻灯片,在这种情况下,幻灯片和幻灯片视图之间的区别是什么?我把事情复杂化了吗?真是“扭我的瓜”!任何关于如何进行这项工作的建议都将不胜感激。

对于多对多关系,你的左手关系是错误的。一张照片可以出现在许多幻灯片中,但你画的是另一种方式——实际上,你用一个不必要的中间桌子模拟了一对多,这就是为什么你觉得它不对的原因。Slideshow和SlideshowView实际上与您绘制图表的方式相同

用户永远不会“看到”中间的链接表。(S) 他将选择多张照片进行幻灯片放映;对于其中的每一个,链接表中都有一行将这些照片链接到新的幻灯片,而不排除它们也出现在其他幻灯片中。对于最终用户,只有照片和幻灯片才可见。我会亲自打电话给链接表幻灯片。下面是三张照片和两张幻灯片的ID值,显示两张幻灯片中出现的照片109

Photograph    | Link                        | Slideshow
ID            | PhotographID SlideshowID    | ID
107           | 107          23             | 23
108           | 109          23             | 24
109           | 109          24             |

对于多对多的关系,你的左手关系是错误的。一张照片可以出现在许多幻灯片中,但你画的是另一种方式——实际上,你用一个不必要的中间桌子模拟了一对多,这就是为什么你觉得它不对的原因。Slideshow和SlideshowView实际上与您绘制图表的方式相同

用户永远不会“看到”中间的链接表。(S) 他将选择多张照片进行幻灯片放映;对于其中的每一个,链接表中都有一行将这些照片链接到新的幻灯片,而不排除它们也出现在其他幻灯片中。对于最终用户,只有照片和幻灯片才可见。我会亲自打电话给链接表幻灯片。下面是三张照片和两张幻灯片的ID值,显示两张幻灯片中出现的照片109

Photograph    | Link                        | Slideshow
ID            | PhotographID SlideshowID    | ID
107           | 107          23             | 23
108           | 109          23             | 24
109           | 109          24             |

当然答案是如此简单,以至于我现在对问这个问题感到尴尬!非常感谢您的清晰简洁的解释。当然!答案是如此简单,以至于我现在对问这个问题感到尴尬!非常感谢您的清晰简洁的解释。