2009-08-08 37 views
3

我想组织我的照片并创建一些ajax前端。我有很多照片和一个现有的托管网站是支付的,有很多的磁盘空间,所以我不想支付存储在Picasa网络或替代。照片网站的建议数据库模式

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

照片
相册
标签(也许)

几个问题:1。 做我会为每个专辑或一个照片的所有照片单独的表。单独的表将是相同的,所以我试图确定是否有任何好处,这种分离 2.是否有任何使用SQL服务器与MYsql(这是我的选择在这种情况下)这种模式的主要好处。我不认为我正在做任何想象的事情。

回答

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_photo是外键Tag.id各自Photo.id

如果你正在做的项目只是为个人使用,我想的MySQL会做就好了。

+0

画廊拇指的任何想法?这应该是照片表格还是相册表格中的字段? – Paul 2010-09-19 04:59:11

2

专辑(id,名称,说明)的一个表格,照片(id,名称,描述,PhotoData,parentAlbum)的一个表格,如果分解成不同的表格,则不会带来任何好处和复杂性每张专辑。如果您希望照片属于多个相册,请使用1:N关系相册:照片的链接表,而不是将相册ID作为照片的一部分。如果你决定是否要标记照片或专辑(或两者)标签,那么可以去标签表和1:N映射表的AlbumTags和PhotoTag

关于数据库选择,唯一的区别在这个级别的成本是如此,你最好知道的(如果你们都有相同的价格)。