在这个例子中,表格“图片”的主键是什么

时间:2009-09-01 04:12:52

标签: sql sql-server

表: PhotoAlbum
列:
ALBUMID
ALBUMNAME
AlbumDate
专辑描述

表:图片
列: PictureID
AlbumID

问题在于我使用图片ID作为对相册中图片的引用,因此该字段的每张相册的数据都是重复的。

6 个答案:

答案 0 :(得分:9)

除非我遗漏了什么,否则我认为PictureId将是主要的,而AlbumID将是一个外键。

答案 1 :(得分:9)

我会说PictureID是主键,因为它(或者应该)对每张图片都是唯一的。毕竟,definition of primary key, according to Wikipedia

  

在关系数据库设计中,唯一键或主键是唯一标识表中每一行的候选键。唯一键或主键包括单列或一组列。表中没有两个不同的行可以在这些列中具有相同的值(或值的组合)。根据其设计,表可以具有任意多个唯一键,但最多只有一个主键。

答案 2 :(得分:5)

PictureID,除非我遗漏了某些东西......

答案 3 :(得分:1)

如果您希望每张图片属于一张且只有一张相册,那么只有PictureID可以。

如果您希望每张图片都出现在多个相册中,那么您可以将PictureID和AlbumID组合为一个主键。也就是说,通过PictureID和它所属的专辑的组合,图片被唯一地标识。然后将PictureData保存在另一个表中(图片将更好地描述为PictureAlbum或其他)

答案 4 :(得分:1)

On First view pictureId应该是主键。 但是,如果我假设正确,将会有一个表格,用于存储有关PitctureId作为主键的图片信息(比如PictureMaster)那么

在表格中,pictureId和AlbumId togethere将创建PrimaryKey(复合主键)和AlbumId,PictureId将为ForeignKey。

答案 5 :(得分:1)

PictureID是主键,AlbumID是外键... PictureID是唯一的,没有相同名称,AlbumID也是一个具有唯一名称的组。