我正在创建一个名为
每个用户一次只能有一个关联的照片(暂时是这样,但将来可能会改变),
Photo
的简单表,用于存储在User
表中定义的人/团体的照片。我使用微软SQL Server的FILESTREAM
功能,因为所有其他用户数据已经存储在SQL Server中,而且当它们直接与数据库条目相关联时,通过手动检索对象编写单独的方法不如这种方式更有意义。每个用户一次只能有一个关联的照片(暂时是这样,但将来可能会改变),
FILESTREAM
需要一个GUID
列来引用它存储到磁盘上的文件,所以这是我为Photo
设计的模型:UserID int NOT NULL UNIQUE
PhotoID uniqueidentifier ROWGUIDCOL NOT NULL
PhotoBitmap varbinary(MAX) FILESTREAM NULL
我的问题是(如果这个模型适用于我的应用程序),我应该使用PhotoID
作为主键,因为它已经是唯一的并且是必需的吗?对我来说,这似乎比创建一个单独的INT
列仅用于主键更简单,但我不知道这是否“正确”。