建议照片网站的数据库架构

时间:2009-08-08 11:39:25

标签: asp.net database schema photos

我正在尝试整理我的照片并创建一些ajax前端。我有很多照片和现有的托管网站,这是有大量的磁盘空间所以我不想支付存储在picasa网络或替代。

我正在创建一个asp.net网站来查看这些照片,但我试图确定最好的架构然后存储。 A有一些基本问题:

照片
相册
标签(可能)

几个问题: 1.我是否为每张专辑或一张照片中的所有照片配备了单独的表格。单独的表格将是相同的,所以我试图确定这个分离是否有任何好处 2.对于此架构,使用SQL服务器与MYsql(在本例中是我的选择)是否有任何主要好处。我不认为我正在做任何想要的事情。

2 个答案:

答案 0 :(得分:12)

您应该将所有照片放入一个表中,其中您有1:N,其中包含外键到相册,例如

Photos | id, title, url, description, album
Albums | id, title, description

其中,专辑是Albums.id

的外键

关于标签,您可能希望为一张照片添加许多标签,因此这将是N:N,您需要另一个表来加入这两个,所以您有

Tags | id, name
Photo_Tag | id, id_tag, id_photo

其中id_tagid_photoTag.id各自Photo.id的外键

如果您将该项目仅供个人使用,我认为MySQL会做得很好。

答案 1 :(得分:2)

一张专辑(id,Name,Description)表,一张照片表(id,name,description,PhotoData,parentAlbum),如果你按照不同的表格分成不同的表,你将无法获得任何好处和复杂性专辑。如果您希望照片属于多个相册,请使用1:N关系相册:照片的链接表,而不是将相册ID作为照片的一部分。如果您去标签决定是否要标记照片或相册(或两者),那么可以选择标签表和AlbumTags和PhotoTags的1:N映射表

关于数据库选择,这个级别的唯一区别是成本,所以选择你最熟悉的(如果你有两个价格相同)。