我在想,如果一比一的關係是適用於以下情形:是否適合此場景的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,那麼你的一對一一個沒關係。 –