首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相册台面设计

相册台面设计
EN

Stack Overflow用户
提问于 2011-01-07 06:31:16
回答 3查看 2.5K关注 0票数 3

对于相册,我看到大多数人使用3个表:

相册照片PhtoAlbums。

然而,如果我看一个像facebook这样的网站,这个模式不会工作(如果我理解正确的话),因为我可能在我的个人资料相册和一般相册中有一张照片,但我可以给同一张照片不同的描述,不同的标签,等等。所以我的猜测是,每当用户创建一张照片的副本时,它都会被视为一张全新的照片,因此我们只需要两个表: Albums和Photos (它有FK到相册)

其他选项是拥有只有1列的照片表(photo_id),并将所有照片详细信息放在PhotoAlbum表中,这样我就可以为每个相册提供唯一的属性。

我在这个设计中是有效的吗?

EN

回答 3

Stack Overflow用户

发布于 2011-01-07 06:35:43

Photo <- Photo_Album -> Album。是关系,所以将各种有效负载(描述、标签等)放在Photo_Album表(以及照片本身)上,这样当照片在数据库中时,相册中的照片的每个实例也会被标记/描述。

然后,您可以巧妙地处理如何合并/显示这些数据给用户。

另外,别忘了Facebook不是一个关系模型。由于可伸缩性的原因,它是一个“NoSQL”的-style数据库,其工作方式非常不同。你可以在谷歌上搜索"NOSQL“来了解更多关于这个思路的信息。

票数 2
EN

Stack Overflow用户

发布于 2011-01-07 06:55:08

在关系数据库中,照片/照片_相册/相册是存储数据的常规方式。原则是您只存储一张照片(或单个实体)一次,但使用其他机制来提供所需的最终用户功能。

实际上,您不需要在照片的数据库中创建一个“副本”来对其应用不同的元数据。您可以将元数据(不同的标记、描述等)放在与包含该元数据的Photo_Album表相关的表中,而不是将其保存在Photo表中。这样,对于照片和相册的每个组合,您将拥有不同的元数据。

通过使用这三个(从技术上讲是四个)表相关的方法,您可以获得关于一张照片或一张相册的元数据,或者这两者的组合。

这一切都归结于您的最终状态和潜在的未来需求,当然,此设计模式的要点是将您的数据库视为一个单独的、经济的和优化的数据存储系统。然后使用SQL/TSQL和许多其他“中间”机制为GUI提供接口。

票数 1
EN

Stack Overflow用户

发布于 2014-08-02 22:38:30

在关系数据库中,照片/照片_相册/相册是存储数据的常规方式。原则是您只存储一张照片(或单个实体)一次,但使用其他机制来提供所需的最终用户功能。

实际上,您不需要在照片的数据库中创建一个“副本”来对其应用不同的元数据。您可以将元数据(不同的标记、描述等)放在与包含该元数据的Photo_Album表相关的表中,而不是将其保存在Photo表中。这样,对于照片和相册的每个组合,您将拥有不同的元数据。

通过使用这三个(从技术上讲是四个)表相关的方法,您可以获得关于一张照片或一张相册的元数据,或者这两者的组合。

这一切都归结于您的最终状态和潜在的未来需求,当然,此设计模式的要点是将您的数据库视为一个单独的、经济的和优化的数据存储系统。然后你可以使用SQL/TSQL和许多其他的“中间”机制来为你的GUI.You提供接口,可以在http://www.albumkart.com创建最好的相册设计和制作服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4620675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档