~/کدولاگ
→ بررسی اجمالی پروژه
ساخت یک کوتاه‌کننده لینک با Go

بخش ۲: مدل داده

طراحی جدول لینک‌ها، انتخاب استراتژی کد کوتاه، و اجرای اولین مایگریشن.

یک کوتاه‌کننده در اصل یک فروشگاه key/value با آرزوهای آماری است. بیایید جدول اصلی را مدل‌سازی کنیم.

CREATE TABLE links (
  id          BIGSERIAL PRIMARY KEY,
  code        TEXT NOT NULL UNIQUE,
  target_url  TEXT NOT NULL,
  created_at  TIMESTAMPTZ NOT NULL DEFAULT now(),
  hits        BIGINT NOT NULL DEFAULT 0
);

کد از کجا می‌آید؟

دو استراتژی رایج:

  • تصادفی: تولید ۷ کاراکتر base62، و تلاش دوباره در برخورد نادر.
  • شمارنده + base62: رمزگذاری id سطر به base62 برای یکتایی تضمین‌شده و کدهای کوتاه.

ما از رمزگذاری base62 برای id استفاده می‌کنیم — عاری از برخورد است و کدها برای مدت طولانی کوتاه می‌مانند. در بخش بعدی، endpoint کوتاه‌سازی را روی این پایه می‌سازیم.