Использование столбца UUID и идентификатора приращения и отдельного столбца UUID в реляционных базах данных (Laravel, Eloquent) - PullRequest
0 голосов
/ 25 октября 2019

Я часто вижу два способа сделать это:

1: UUID как идентификатор

Schema::create('orders', function (Blueprint $table) {
    $table->uuid('id')->unique();
...

2: UUID и идентификатор с автоматическим увеличением

Schema::create('orders', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->uuid('uuid')->unique();
...

Есть ли какие-либо существенные преимущества в любом методе? Я думаю, что одним из преимуществ опциона может быть стремление загружаться. Например:

select * from `order_addresses` where `order_addresses`.`id` in (1, 2, 3, 4, 5)

против

select * from `order_addresses` where `order_addresses`.`id` in ('683d3bc7-edd7-4f12-a7eb-831bfc5e90eb','20d3d3f5-2b0d-45e0-9f17-f581317b3f97','907af98b-e433-4e55-a641-3f134ea9039c','7713462c-b8aa-4d11-a576-7d4634595a35','4a27368e-5ebe-43e4-bfaf-8be303a84318','e5e618d9-fd25-4f98-bc70-03bc378c338d','5aa3dd71-a4fc-44ac-a810-2e414372d1ed','9c62bbdc-2555-4239-81fd-365ada304619','a7f22427-b7e7-41c0-bc38-f84306f0bae6','386d8318-3da5-4de1-95d0-f144b53ed76d')

Однако я не на 100%. Может ли кто-либо предоставить дополнительные аргументы и / или подтвердить вышеизложенное?

1 Ответ

1 голос
/ 25 октября 2019

UUID лучше для n-уровневого приложения, где каждое приложение может создать свой собственный идентификатор без риска нарушения "уникального" правила.

Нет необходимости иметь и то, и другое, и разницу в скорости между большим целым числом без знакаи UUID маленький.

UUID использует больше места, вот и все.

...