I have these schema in my SQL Server database:
CREATE TABLE [dbo].[Phrase] ( [PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [Text] NVARCHAR (MAX) NOT NULL, [CategoryId] INT DEFAULT ((1)) NOT NULL, PRIMARY KEY CLUSTERED ([PhraseId] ASC), CONSTRAINT [FK_PhrasePhraseCategory] FOREIGN KEY ([CategoryId]) REFERENCES [dbo].[PhraseCategory] ([PhraseCategoryShortId]) ); CREATE TABLE [dbo].[PhraseCategory] ( [PhraseCategoryId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [PhraseCategoryShortId] INT IDENTITY (1, 1) NOT NULL, [Name] VARCHAR (20) NOT NULL, PRIMARY KEY CLUSTERED ([PhraseCategoryShortId] ASC) ); Am I correct in saying that if I go to the PhraseCategory table and try to delete a row it will check to see if that PhraseCategoryShortId is used in the phrase table? If that's a case then should I index CategoryId in that table?