我在想,如果一比一的关系是适用于以下情形:是否适合此场景的1对1关系?
我有由两列,ID和TrackingNumber,它保持跟踪号码的清单(电话号码使用的查找表转发)。我们还有一个包含我们客户电话号码的现有表格。
我们希望偶尔跟踪某些电话号码,并将它们链接到一个跟踪号码。发生这种情况时,确定跟踪的开始和结束日期。一旦结束日期过去了,我们希望该行保留在表格中,但被标记为不活动。原因是,如果该客户将来需要重新追踪,我们希望在可能的情况下重新使用相同的追踪号码。
首先填充TrackingNumber表,但RefTrackingNumber表不会。我们还可能在将来添加更多条目到TrackingNumber表中。我意识到,一种选择是只有一个表,但这需要先删除NOT NULL约束。
我能拿出最好的解决办法是为这个职位以下的例子:Defining a one-to-one relationship in SQL Server
有没有更好的办法?
谢谢。
CREATE TABLE TrackingNumber (
ID int PRIMARY KEY,
TrackingNumber varchar(20)
)
CREATE TABLE RefTrackingNumber (
ID int PRIMARY KEY,
RefPhoneNumber int NOT NULL,
StartDate datetime NOT NULL,
EndDate datetime NOT NULL,
Active bit NOT NULL
)
ALTER TABLE RefTrackingNumber
ADD FOREIGN KEY (ID) REFERENCES TrackingNumber(ID)
如果你不想多RefTrackingNumber记录引用一个TrackingNumber,那么你的一对一一个没关系。 –