Мне было интересно, подходит ли отношение один-к-одному для следующего сценария:
У меня есть справочная таблица, состоящая из двух столбцов, ID и TrackingNumber, которая содержит список номеров отслеживания (телефонномера, используемые для пересылки).У нас также есть таблица с телефонными номерами наших клиентов.
Мы хотели бы иногда отслеживать определенные номера телефонов, связывая их с номером отслеживания.Когда это происходит, определяется дата начала и окончания отслеживания.По истечении срока окончания мы хотели бы, чтобы эта строка оставалась в таблице, но была помечена как неактивная.Причина этого заключается в том, что если в будущем этот клиент потребует повторного отслеживания, мы хотели бы повторно использовать тот же номер отслеживания, если это возможно.
Для начала будет заполнена таблица TrackingNumber, но таблица RefTrackingNumberне будет.В будущем мы также можем добавить дополнительные записи в таблицу TrackingNumber.Я понимаю, что один из вариантов - просто иметь одну таблицу, но для этого потребуется удалить ограничения NOT NULL для начала.
Лучшее решение, которое я могу придумать, это следующий пример для этого поста: Определение отношения один-к-одному в 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)