Ich habe dieses Schema in meiner SQL Server-Datenbank:Muss ich beim Einrichten eines Fremdschlüssels manuell einen Index erstellen?
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)
);
Bin ich sagen korrigieren, wenn ich an den PhraseCategory
Tisch gehen und versuchen, eine Zeile zu löschen, es wird überprüft, um zu sehen, ob die PhraseCategoryShortId
in der verwendet wird, Phrasentabelle? Wenn das ein Fall ist, sollte ich dann CategoryId
in dieser Tabelle indexieren?