При создании набора элементов, идентифицированных путеводителями, я решил использовать дочерние элементы, которые разделяют первые 12 символов (6 байтов) своего идентификатора с идентификаторами родительского и родственного элементов.
Например:
Parent Id: df2f5d11-0b66-4407-8cf4-8877b954a273
Child Id: df2f5d11-0b66-349b-8527-1a6a79d2efce
Я знаю, что многие модели используют аналогичный механизм для связанных объектов, поэтому мне интересно, существуют ли предписанные передовые практики или соглашения для распознаваемых уникальных идентификаторов.
Моя реализация выглядит так:
var childId = new Guid(parentId.ToByteArray().Take(6).Concat(Guid.NewGuid().ToByteArray().Take(10)).ToArray());
- что немного неуклюже, если во многих системах используется аналогичный механизм.
Есть ли лучший / чище / проще?