Необходимо ли делать связку сущностей через GUID?

Таблицы:
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'ы связей "собирать" в момент экспорта?
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Все зависит от того, как будут использоваться записи в той системе, в которую происходит импорт. Если они собираются хранить эти данные у себя и как-то с ними работать, то им нужен неизменяемый гуид для работы, чтобы они могли нормально обновлять данные. Если это что-то, что не требует обновления, "разовая" информация, то можно и на лету гуиды строить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы