mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-15 01:54:43 +00:00
Add user profile and avatar upload feature
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
CREATE TABLE dbo.UserAvatar
|
||||
(
|
||||
UserAvatarID UNIQUEIDENTIFIER
|
||||
CONSTRAINT DF_UserAvatarID DEFAULT NEWID(),
|
||||
|
||||
UserProfileID UNIQUEIDENTIFIER NOT NULL,
|
||||
|
||||
PhotoID UNIQUEIDENTIFIER NOT NULL,
|
||||
|
||||
ValidFrom DATETIME2(3) NOT NULL
|
||||
CONSTRAINT DF_UserAvatar_ValidFrom DEFAULT SYSUTCDATETIME(),
|
||||
|
||||
ValidTo DATETIME2(3) NULL, -- NULL = currently active
|
||||
|
||||
RowVersion ROWVERSION,
|
||||
|
||||
CONSTRAINT PK_UserAvatar PRIMARY KEY (UserAvatarID),
|
||||
|
||||
CONSTRAINT FK_UserAvatar_UserProfile
|
||||
FOREIGN KEY (UserProfileID)
|
||||
REFERENCES dbo.UserProfile (UserProfileID)
|
||||
ON DELETE CASCADE,
|
||||
|
||||
CONSTRAINT FK_UserAvatar_Photo
|
||||
FOREIGN KEY (PhotoID)
|
||||
REFERENCES dbo.Photo (PhotoID)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION,
|
||||
|
||||
CONSTRAINT CK_UserAvatar_ValidRange
|
||||
CHECK (ValidTo IS NULL OR ValidTo > ValidFrom)
|
||||
);
|
||||
|
||||
-- At most one active avatar per profile
|
||||
CREATE UNIQUE NONCLUSTERED INDEX UX_UserAvatar_ActiveOne
|
||||
ON dbo.UserAvatar (UserProfileID)
|
||||
WHERE ValidTo IS NULL;
|
||||
|
||||
CREATE NONCLUSTERED INDEX IX_UserAvatar_Photo
|
||||
ON dbo.UserAvatar (PhotoID);
|
||||
|
||||
CREATE NONCLUSTERED INDEX ix_UserAvatar_Profile
|
||||
ON dbo.UserAvatar (UserProfileID)
|
||||
Reference in New Issue
Block a user