3

我正在尝试整理我的照片并创建一些 ajax 前端。我有很多照片和一个付费的现有托管站点,它有很多磁盘空间,所以我不想付费存储在 picasa 网络或替代方案上。

我正在创建一个 asp.net 站点来查看这些照片,但我正在尝试确定要存储的最佳架构。A有几个基本问​​题:

相册
标签
(也许)

几个问题: 1. 我是否为每个相册或一张照片中的所有照片设置了单独的表格。单独的表将是相同的,所以我试图确定这种分离是否有任何好处 2. 对于这个模式,使用 SQL Server 与 MYsql(在这种情况下是我的选择)有什么主要好处。我不认为我在做任何幻想。

4

2 回答 2

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

whereid_tag和是各自id_photo的外键Tag.idPhoto.id

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

于 2009-08-08T11:47:33.937 回答
2

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

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

于 2009-08-08T11:44:47.983 回答