Я создаю простую таблицу с именем Photo
для хранения фотографий для людей/групп, определенных в таблице User
. Я использую функцию Microsoft SQL Server FILESTREAM
, так как все остальные пользовательские данные уже хранятся в SQL Server, и для меня это имеет большее значение, чем программирование отдельного способа вручную извлекать объекты с диска, когда они напрямую связаны с записями в базы данных.Использование SQL Server FILESTREAM GUID в качестве первичного ключа
У каждого пользователя может быть только одна связанная с ними фотография (на данный момент это может измениться в будущем), а FILESTREAM
требует, чтобы столбец GUID
ссылался на файлы, хранящиеся на диске, так что это модель Я придумал для Photo
:
UserID int NOT NULL UNIQUE
PhotoID uniqueidentifier ROWGUIDCOL NOT NULL
PhotoBitmap varbinary(MAX) FILESTREAM NULL
Мой вопрос (если эта модель верна для моего приложения), я должен использовать PhotoID
в качестве первичного ключа, видя, как это уже уникален и необходим? Мне кажется, что это было бы проще, чем создание отдельного столбца INT
только для первичного ключа, но я не знаю, является ли он «правильным».