主キーとして 2 つの列を持つテーブルがあります。これらの 2 つの列は、同じテーブルを参照する外部キーでもあります (このテーブルは、会社を退職した人物によって少し前に作成されました)。
CREATE TABLE [dbo].[tblItemLink](
[ItemListID] [int] NOT NULL,
[ItemID] [int] NOT NULL,
CONSTRAINT [PK_tblItemList] PRIMARY KEY CLUSTERED
(
[ItemListID] ASC,
[ItemID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tblItemLink] WITH CHECK ADD CONSTRAINT [FK_tblItemLink_tblItemLink] FOREIGN KEY([ItemListID], [ItemID])
REFERENCES [dbo].[tblItemLink] ([ItemListID], [ItemID])
GO
ALTER TABLE [dbo].[tblItemLink] CHECK CONSTRAINT [FK_tblItemLink_tblItemLink]
GO
実際には、ItemID は tblItem.ItemID を参照し、ItemListID は DB のどこにも見つかりませんが、アプリケーションには対応する列挙型があります。
主キーがそれ自体を参照する外部キーでもある理由はありますか (つまり、文書化されていないパフォーマンスの向上)、それとも単なる間違いですか?