Я создаю приложение для заметок, в котором я использую базу данных MySQL для хранения заметок.Приложение должно иметь возможность хранить заметки в автономном режиме (PWA).
У меня есть одна таблица, где будут храниться все заметки для всех пользователей.Теперь мне интересно, каков наилучший способ создания идентификатора заметок?
Вариант 1: автоинкрементный столбец MySQL.
Недостатком этого подхода является то, что, если кто-то создает заметку в автономном режиме, в приложении могут быть повторяющиеся идентификаторы, когда приложение синхронизирует заметки.Это может быть предотвращено, чтобы дать этому дубликату новый идентификатор и синхронизировать его с пользователем.
Опция 2: Используйте функцию UID, подобную приведенной ниже.
Недостатком этого является то, что существует очень малая вероятность того, что UID будет дублироваться с тем, который уже сохранен в БД.То же самое, что и в варианте 1. Затем я могу создать новый идентификатор, который является уникальным на стороне сервера, и синхронизировать его с приложением пользователя.
let S4 = function () {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
};
let id = (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
example output: c62a85d6-4e93-e443-8533-56a895d7e013
Что, по вашему мнению, является лучшим подходом для этого?У вас есть какие-либо предложения или совершенно разные способы сделать это?