履歴書のエンティティをモデル化しようとしていますが、その際に次の問題に遭遇しました。最近開催されたポジションを除くすべてに終了日があります。
null を許可する行を最大 1 行に制限する良い方法はありますか。イベントより良いのは、単一の許可された null にも最新の開始日があることです。
これを別の言い方をすれば、「ない限り null ではない」という制約を指定できますか?
注: これは私が行っている学習演習です (製品コードの作業とは対照的に)。私が使用しているスクリプト化されたテーブルは次のとおりです。
CREATE TABLE [dbo].[Employers](
[Id] [uniqueidentifier] NOT NULL,
[City] [nvarchar](max) NULL,
[State] [nvarchar](max) NULL,
[StartMonth] [int] NULL,
[StartYear] [int] NOT NULL,
[EndMonth] [int] NULL,
[EndYear] [int] NULL,
[Name] [nvarchar](max) NULL,
[Label] [nvarchar](max) NULL,
[Resume_Id] [uniqueidentifier] NULL,
[UserProfile_UserId] [int] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Employers] WITH CHECK ADD CONSTRAINT [Resume_Employers] FOREIGN KEY([Resume_Id])
REFERENCES [dbo].[Resumes] ([Id])
GO
ALTER TABLE [dbo].[Employers] CHECK CONSTRAINT [Resume_Employers]
GO
ALTER TABLE [dbo].[Employers] WITH CHECK ADD CONSTRAINT [UserProfile_Employers] FOREIGN KEY([UserProfile_UserId])
REFERENCES [dbo].[UserProfile] ([UserId])
GO
ALTER TABLE [dbo].[Employers] CHECK CONSTRAINT [UserProfile_Employers]
GO