Я думаю, что я на самом деле ищу разделение сущностей. Однако я не уверен на 100%, поддерживается ли способ, который мне нужен. Итак, я добавлю много подробностей, которые, надеюсь, помогут. Я ограничу область действия одной сущностью, поскольку ответ будет одинаковым для всех тех, с кем мне приходится иметь дело.
Итак, у меня есть объект User:
User
ID (int)
CustID (int)
CustomerString (string)
FirstName (string)
LastName (string)
Email (string)
Из-за мультитенантности нашей базы данных каждый объект связан с концепцией владельца. Это представлено CustID во всех таблицах. Тем не менее, этот идентификатор является бессмысленным PK для наших клиентов, которые будут получать доступ к этой службе данных. Они знают свою CustomerString, которая является просто уникальным строковым значением, равным идентификатору в нашей таблице Client.
Две таблицы, связанные с сущностью User, таковы:
Пользователи
CREATE TABLE [Customers](
[ID] [int] NOT NULL,
[Name] [varchar](100) NOT NULL,
[Description] [varchar](255) NULL,
[ClientPhone] [varchar](20) NULL,
[Address] [varchar](255) NULL,
[CustomerString] [varchar](100) NOT NULL,
[sys_CreateDate] [datetime] NOT NULL,
[sys_LastUpdate] [datetime] NOT NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY NONCLUSTERED
(
[ID] ASC
)
Пользователи
CREATE TABLE [Users](
[UserID] [int] IDENTITY(2000000,1) NOT NULL,
[CustID] [int] NOT NULL,
[FirstName] [varchar](40) NOT NULL,
[LastName] [varchar](40) NOT NULL,
[mail] [varchar](255) NULL,
[CreateDate] [datetime] NOT NULL,
[ModifyDate] [datetime] NOT NULL,
CONSTRAINT [PK2_Users] PRIMARY KEY CLUSTERED
(
[UserID] ASC
)
Итак, в настоящее время у меня есть сущность User, сопоставленная с таблицей Users следующим образом:
ID ==> Users.UserID
CustID ==> Users.CustID
CustomerString <NOT MAPPED>
FirstName ==> Users.FirstName
LastName ==> Users.LastName
Email ==> Users.Mail
Теперь наступил мой камень преткновения. Мне нужно сопоставить CustomerString с Customers.CustomerString, где Users.CustID = Customers.ID. Из того, что я прочитал, мне кажется, что это не было бы проблемой, если бы идентификаторы были одинаковыми в каждой таблице. Однако, как вы видите, это не так.
Пожалуйста, помогите! Это абсолютное требование для этого проекта, над которым я работал в прошлом месяце или около того.
Заранее благодарю за любую помощь, которую вы можете оказать!
Ryan