Как убедиться, что randomati c создает уникальный идентификатор? - PullRequest
0 голосов
/ 26 мая 2020

Я использую randomati c npm для хранения идентификатора в mongoDB, поскольку mon go создает только длинный идентификатор объекта, который нельзя использовать для номеров счетов. Моя текущая модель:

orders: [
  {
    orderReference: { type: String },
    orderStatus: { type: String },
    orderType: { type: String },
    orderDate: { type: Date, default: Date.now },
    itemDetails: { type: String },
    purchaseOrder: {
      orderReference: { type: String },
      orderStatus: { type: String },
      orderType: { type: String },
      orderDate: { type: Date, default: Date.now },
      itemDetails: { type: String },
    },
    thirdPartyOrder: {
      orderReference: { type: String },
      orderType: { type: String },
      orderDate: { type: Date },
      itemDetails: { type: String },
    },
    platformRevenue: {
      orderReference: { type: String },
      orderType: { type: String },
      orderDate: { type: Date, default: Date.now },
      itemDetails: { type: String }
    }
  }
],

В текущей модели, как я могу проверить / запросить, что идентификатор, который в настоящее время находится в других заказах, не дублируется и действительно уникален. Поскольку randomati c сам по себе не создает уникальный идентификатор. Он просто создает случайный идентификатор, тогда как в моем случае мне нужен уникальный 4 DI GIT NUMBERI C ID для orderReference.

Есть ли вероятность, что четыре-di git случайные уникальные идентификаторы закончатся sh однажды, и мне лучше создать последовательные идентификаторы, а не с приращением +1?

Каков отраслевой стандарт создания идентификаторов для orderReferencing. В основном я видел от 4 до 6 di git числовых идентификаторов на всех счетах, которые я получал в своей жизни.

Пожалуйста, помогите и предложите наилучший вариант использования.

1 Ответ

0 голосов
/ 26 мая 2020

Я бы предпочел использовать ваше второе предложение, последовательные идентификаторы с приращениями.

Хотя можно использовать случайные числа, вы, вероятно, проверите, есть ли указанный c идентификатор уже в базе данных перед вставкой, в этом случае вам необходимо сгенерировать новые идентификаторы.

Более того, с последовательной версией вы сможете отслеживать (приблизительный) счет-фактуру / номер счета-фактуры.

Предел будет 10.000 различных идентификаторов в любом случае (включая 0).

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...