【发布时间】:2016-09-07 05:53:57
【问题描述】:
我的 SQL Server 数据库中有这些架构:
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)
);
如果我转到PhraseCategory 表并尝试删除一行,它会检查是否在短语表中使用了PhraseCategoryShortId,这是否正确?如果是这种情况,那么我应该在该表中索引 CategoryId 吗?
【问题讨论】:
标签: sql-server foreign-keys ddl