(наприклад, першим буде відображатись останній вставлений),
але без використання допоміжного поля (якогось числового чи datetime) ?
Тобто, чи можна якось відсортувати чистий GUID, а не комбінацію GUID + допоміжне поле ?
Sorting Behavior: DateTime sorts chronologically. If you have a series of DateTime values, sorting them will arrange them from the earliest to the latest (or vice versa, if you choose descending order). Guid does not have a semantic order. Sorting a list of Guid values doesn't produce a sequence that's meaningful in terms of when those GUIDs were created. They will be sorted based on their underlying byte values, which doesn't correlate with the time of generation. (c) ChatGPT
Тож ні, без datetime поля тобі не обійтися ніяк
Тобі не GUID тоді потрібен. Подивись на https://github.com/Cysharp/Ulid
NEWSEQUENTIALID() нє?
Тобто, на стороні клієнта замість Guid генерувати Ulid і вже його записувати в базу як первинний ключ ? Ulid забезпечує таку ж унікальність як і Guid ?
Так. Моя ідея така була. Ну і звісно Іван мабуть також гарну ідею дає
на стороні клієнта краще нічого не генерувати бо є "пустотливі ручки")
Ти зараз не правий
просто що тоді буде заважати комусь, типу мене, ручками пакети генерувати і ламати все підряд?)
Що будь кому заважає брати биту і всіх бити?
те що ламати айтішні сервіси веселіше 😁
Якщо на місті праці зламаєш через грубу недбалість я ось хз як відреагують
а потім тицяти їх носом що "у вас тут діра, ай яй яй"
Мабуть ти дома любиш двері ламати
он коммент зі сттаті, типу такого про що я кажу якщо воно на стороні клієнта то ніщо не заважає мені закинути туди один і той же 2 рази підряд
Де була рекомендація GUID юзати? Я впевнений що на Україні немає ні одного виробництва де ця ситуація можлива. Єдине де бачу це якісь транзакції у розетки/моб операторах/банках. Але пан ІМ не там працює
Каждый идентификатор GUID, сформированный с помощью функции NEWSEQUENTIALID, является уникальным на данном компьютере. Идентификаторы GUID, сформированные с помощью функции NEWSEQUENTIALID, становятся уникальными для нескольких компьютеров, только если в компьютере-источнике имеется сетевая плата. Отже, якщо десь в іншому місті на китайській мережевій з однаковим маком партії згенерили таким способом, то все ж існує рідкісна ймовірність співпадання ?
Яхз, просто припустив, воно ж наче скл сервером має генеруватися, якщо у вас база пер сервіс то очевидно вам таке рішення не підхрдить
Є лібка NewId від автора MassTransit. Вона базується на таймстемпі і ІД згенерені нею можна сортувати з врахуванням часу
Це те як ід в дії влаштовані?
Нє Але ідея схожа
Варто зазначити, шо для проектів з високими реквайрментами по сєсуріті цю штуку не варто юзати
Чому? Які аргументи проти?
Ну окей, у тебе ІД корелює з датою створення але в чому проблема?
Їх не можна вважати секурними з точки зору криптографії https://stackoverflow.com/a/3653032 Якшо, наприклад, отака айдішка юзається як інпут для всяких секурних штук (багато надлюдей пхають айдішку в соль для хеша пароля, або підімшують її в чексуми), то це відкриває/спрощує потенційні вектори атаки
Взагалі вперше чую, щоб хтось пхав ІД в сіль чи чек-суми.. Дивна штука ІМО
Схоже це поінт щодо всіх GUID/UUID лайк штук
З іншого боку якщо це просто ІД, яке не пхається в секурні штуки - думаю норм юзати, бо ми ж і так їх постійно світимо, коли через АПВІ
Це створює величезну диру, хіба що пропустити через хеш сильний якийсь, але все одно дира залишиться
Так, дуже вже засмучує, що такі легкі помилки допускають
Ну а чого очікувати, коли у них студенти за 3 копійки працюють..
Ну я не думаю, що архітектурою таких питань студенти займалися, ось до тієї людини якраз є питання
Ну вставляй вперед гайд юнікс дату
Обсуждают сегодня