Таблицы:
CREATE TABLE dbo.Entities(
id bigint IDENTITY(-9223372036854700000,1) NOT NULL
, guid uniqueidentifier NOT NULL
, Type bigint NOT NULL
, Parent bigint NULL
, Name nvarchar(200) NOT NULL
, CONSTRAINT [PK_dbo.Entities_ID] PRIMARY KEY CLUSTERED (id)
, CONSTRAINT [IX_dbo.Entities_GUID] UNIQUE (guid)
);
CREATE TABLE dbo.EntityTypes(
id bigint IDENTITY(-9223372036854700000,1) NOT NULL
, guid uniqueidentifier NOT NULL
, Name nvarchar(200) NOT NULL
, CONSTRAINT [PK_dbo.EntityTypes_ID] PRIMARY KEY CLUSTERED (id)
, CONSTRAINT [IX_dbo.EntityTypes_GUID] UNIQUE (guid)
);
Планируется выгружать данные в "нейтральный" формат для Import/Export на другие "площадки".
Если бы данные были чисто внутренними, то связывал бы по PK, но необходимо использовать GUID.
Вопрос: Нужно ли иметь GUID в "связях" например:
dbo.Entities(
TypeId bigint, TypeGuid uniqueidentifier,
ParentId bigint, ParentGuid uniqueidentifier
)
или же только в таблицах сущностей, а Guid'ы связей "собирать" в момент экспорта?