我正在尝试整理我的照片并创建一些ajax前端。我有很多照片和现有的托管网站,这是有大量的磁盘空间所以我不想支付存储在picasa网络或替代。
我正在创建一个asp.net网站来查看这些照片,但我试图确定最好的架构然后存储。 A有一些基本问题:
照片
相册
标签(可能)
几个问题: 1.我是否为每张专辑或一张照片中的所有照片配备了单独的表格。单独的表格将是相同的,所以我试图确定这个分离是否有任何好处 2.对于此架构,使用SQL服务器与MYsql(在本例中是我的选择)是否有任何主要好处。我不认为我正在做任何想要的事情。
答案 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_tag
和id_photo
是Tag.id
各自Photo.id
的外键
如果您将该项目仅供个人使用,我认为MySQL会做得很好。
答案 1 :(得分:2)
一张专辑(id,Name,Description)表,一张照片表(id,name,description,PhotoData,parentAlbum),如果你按照不同的表格分成不同的表,你将无法获得任何好处和复杂性专辑。如果您希望照片属于多个相册,请使用1:N关系相册:照片的链接表,而不是将相册ID作为照片的一部分。如果您去标签决定是否要标记照片或相册(或两者),那么可以选择标签表和AlbumTags和PhotoTags的1:N映射表
关于数据库选择,这个级别的唯一区别是成本,所以选择你最熟悉的(如果你有两个价格相同)。