title: Foreign Key referencing Primary key in the same table
body: <p>I have a table with two columns as the primary key. These two columns are also a foreign key that references the same table:
  (This table was created some time ago by someone who has since left the company)</p>
  
  <pre><code>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
  </code></pre>
  
  <p>In practice, ItemID refers to tblItem.ItemID, and ItemListID is found nowhere else in the DB but there is a corresponding enum in the application.</p>
  
  <p>Is there any reason for the primary key to also be a foreign key referencing itself (ie. some undocumented performance improvement), or is it just a mistake?</p>