mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-14 17:54:42 +00:00
63 lines
1.4 KiB
SQL
63 lines
1.4 KiB
SQL
CREATE TABLE BeerPost
|
|
(
|
|
BeerPostID UNIQUEIDENTIFIER
|
|
CONSTRAINT DF_BeerPostID DEFAULT NEWID(),
|
|
|
|
Name NVARCHAR(100) NOT NULL,
|
|
|
|
Description NVARCHAR(MAX) NOT NULL,
|
|
|
|
ABV DECIMAL(4, 2) NOT NULL,
|
|
-- Alcohol By Volume (typically 0-67%)
|
|
|
|
IBU INT NOT NULL,
|
|
-- International Bitterness Units (typically 0-120)
|
|
|
|
PostedByID UNIQUEIDENTIFIER NOT NULL,
|
|
|
|
BeerStyleID UNIQUEIDENTIFIER NOT NULL,
|
|
|
|
BrewedByID UNIQUEIDENTIFIER NOT NULL,
|
|
|
|
CreatedAt DATETIME NOT NULL
|
|
CONSTRAINT DF_BeerPost_CreatedAt DEFAULT GETDATE(),
|
|
|
|
UpdatedAt DATETIME,
|
|
|
|
RowVersion ROWVERSION,
|
|
|
|
CONSTRAINT PK_BeerPost
|
|
PRIMARY KEY (BeerPostID),
|
|
|
|
CONSTRAINT FK_BeerPost_PostedBy
|
|
FOREIGN KEY (PostedByID)
|
|
REFERENCES UserAccount (UserAccountID)
|
|
ON DELETE NO ACTION,
|
|
|
|
CONSTRAINT FK_BeerPost_BeerStyle
|
|
FOREIGN KEY (BeerStyleID)
|
|
REFERENCES BeerStyle (BeerStyleID),
|
|
|
|
CONSTRAINT FK_BeerPost_Brewery
|
|
FOREIGN KEY (BrewedByID)
|
|
REFERENCES BreweryPost (BreweryPostID),
|
|
|
|
CONSTRAINT CHK_BeerPost_ABV
|
|
CHECK (ABV >= 0 AND ABV <= 67),
|
|
|
|
CONSTRAINT CHK_BeerPost_IBU
|
|
CHECK (IBU >= 0 AND IBU <= 120)
|
|
);
|
|
|
|
CREATE
|
|
NONCLUSTERED INDEX IX_BeerPost_PostedBy
|
|
ON BeerPost(PostedByID);
|
|
|
|
CREATE
|
|
NONCLUSTERED INDEX IX_BeerPost_BeerStyle
|
|
ON BeerPost(BeerStyleID);
|
|
|
|
CREATE
|
|
NONCLUSTERED INDEX IX_BeerPost_BrewedBy
|
|
ON BeerPost(BrewedByID);
|