Tôi thừa kế cơ sở dữ liệu SQL Server có bảng có khóa chính có tên RecordID. Định nghĩa bảng và phím nước ngoài được xác định như thế này:Tại sao tạo ràng buộc khóa ngoài tham chiếu khóa chính của cùng một bảng từ trường khóa chính
CREATE TABLE [dbo].[MyTable](
[RecordId] [int] IDENTITY(1,1) NOT NULL,
[FileName] [nvarchar](255) NOT NULL,
[Record] [nvarchar](255) NOT NULL,
[ErrorDescription] [nvarchar](255) NULL,
[ProcessDate] [datetime] NOT NULL,
CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED
(
[RecordId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [FK_MyTable_MyTable] FOREIGN KEY([RecordId])
REFERENCES [dbo].[MyTable] ([RecordId])
GO
ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_MyTable]
GO
tôi có thể hiểu được điều này nếu chìa khóa ngoại tham chiếu từ một lĩnh vực khác nhau trong cùng một bảng trở lại lĩnh vực then chốt primaray mà sẽ cho phép một hệ thống cấp bậc, nhưng trong trường hợp này hai trường trong định nghĩa khóa ngoài chính xác là cùng một trường. Đây có phải chỉ là một sai lầm trong định nghĩa ban đầu của bảng và khóa ngoại? Hoặc là có một lợi thế thực sự bằng cách nào đó để điều này?
Cảm ơn trước về thời gian trả lời của bạn.
Có thể kiểm tra xem có một bảng khác trong cơ sở dữ liệu trông giống như * * nên tham chiếu bảng này nhưng không. –