firevel/model-random-id

Laravel 的模型随机 ID 生成器。

0.0.3 2022-05-20 18:41 UTC

This package is auto-updated.

Last update: 2024-09-13 23:11:05 UTC


README

此包自动生成符合 MySQL BIGINT 列和 JavaScript MAX_SAFE_INTEGER 的加密随机整数作为主键 ID。

目的

使用分布式数据库如 Cloud SpannerFirestore 的系统不应使用增量 ID 以避免瓶颈。可以使用 UUID 作为替代,但长字符串可能会导致性能和用户体验问题。随机 BIGINT 是增量 ID 和 UUID 之间的折衷方案。

安装

确保您的模型 ID 是 BIGINT 类型,例如:$table->bigInteger('id')->unsigned()->primary();

将以下代码添加到您的模型特质中 use \Firevel\ModelRandomId\HasRandomId;

    /**
     * Primary key incrementing.
     *
     * @var bool
     */
    public $incrementing = false;