برنامه نویسی

انتخاب انواع عدد صحیح در mysql & postgresql

انتخاب نوع عدد صحیح مناسب به این بستگی دارد اندازه ذخیره سازی ، دامنه و عملکردبشر در اینجا راهنمای انتخاب بهترین نوع بر اساس نیازهای شما آورده شده است.

نمای کلی انواع عدد صحیح

نوع داده محدوده MySQL (امضا شده) محدوده postgresql (امضا شده) ذخیره سازی (بایت) بهترین استفاده برای
ریزه -128 تا 127 (بدون امضا: 0 تا 255) ❌ در دسترس نیست 1 مقادیر بولی ، پیشخوان های کوچک
کوچک -32،768 تا 32،767 -32،768 تا 32،767 2 شناسه های کوچک ، شمارش
واسطه -8،388،608 تا 8،388،607 ❌ در دسترس نیست 3 پیشخوان های بزرگ در mysql
Int / Integer -2،147،483،648 به 2،147،483،647 همان MySQL 4 شناسه یا پیشخوان هدف عمومی
با ابله -9،223،372،036،854،775،808 تا 9،223،372،036،854،775،807 همان MySQL 8 شناسه های بزرگ ، Timestamps

چه موقع از هر نوع عدد صحیح استفاده کنیم؟

استفاده کردن TINYINT (mysql) وقتی:

✔ مقادیر بولی (0 یا 1)

✔ پرچم ها یا وضعیت های کوچک (1-100)

✔ مثال:

   CREATE TABLE users (
       is_active TINYINT(1) NOT NULL
   );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

استفاده کردن SMALLINT چه زمانی:

مقادیر عددی کوچک ، مانند سن ، تعداد کوچک یا رتبه بندی (-32,768 به 32,767)

✔ مثال:

   CREATE TABLE products (
       stock SMALLINT UNSIGNED NOT NULL  -- Only positive values (0-65,535)
   );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

استفاده کردن MEDIUMINT (فقط mysql) وقتی:

✔ پیشخوان های بزرگتر از SMALLINT، اما INT بیش از حد است

✔ مثال:

   CREATE TABLE orders (
       order_count MEDIUMINT UNSIGNED NOT NULL
   );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

استفاده کردن INT / INTEGER چه زمانی:

✔ هدف عمومی کلیدهای اصلی (شناسه خودکار)

✔ پیشخوان های بزرگتر (-2B to 2B range)

✔ مثال:

   CREATE TABLE employees (
       id INT AUTO_INCREMENT PRIMARY KEY,
       salary INT NOT NULL
   );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

استفاده کردن BIGINT چه زمانی:

✔ ذخیره Timestamps ، شناسه های بزرگ یا تعداد بسیار زیادی

✔ لازم برای کاربران رسانه های اجتماعی ، سوابق مالی یا شناسه های جهانی

✔ مثال:

   CREATE TABLE transactions (
       transaction_id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
       amount BIGINT NOT NULL
   );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آیا باید از امضا شده یا امضا نشده استفاده کنم؟

  • استفاده کردن UNSIGNED اگر شما فقط به اعداد مثبت احتیاج دارند (مقدار حداکثر را دو برابر می کند).
  • استفاده کردن SIGNED اگر شما به مثبت و منفی نیاز دارید مقادیر
  • مثال:
  -- UNSIGNED: allows 0 to 4,294,967,295
  CREATE TABLE accounts (
      balance INT UNSIGNED NOT NULL
  );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

یادداشت های خاص postgresql

  • هیچ TINYINT یا MEDIUMINT → استفاده کنید SMALLINT یا INTEGER در عوض
  • حمایت SERIAL انواع شناسه های فعال کننده خودکار:
  CREATE TABLE users (
      id SERIAL PRIMARY KEY  -- Equivalent to INT AUTO_INCREMENT
  );
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

انتخاب نوع عدد صحیح مناسب

مورد استفاده نوع mysql نوع postgresql
پرچم های بولی (0/1) TINYINT(1) BOOLEAN
تعداد کمی (سن ، رتبه بندی) SMALLINT SMALLINT
پیشخوان متوسط MEDIUMINT INTEGER
شناسه های عمومی و کلیدهای اصلی INT AUTO_INCREMENT SERIAL
پیشخوان های بزرگ (پایگاه کاربر بزرگ ، داده های مالی) BIGINT BIGINT

اینجا وجود دارد موارد استفاده در دنیای واقعی برای هر نوع عدد صحیح.


1. Tinyint (1 بایت) – پرچم های کوچک و مقادیر بولی

** مثال: وضعیت کاربر و رتبه بندی **

  • استفاده شده برای ایالات دوتایی (0/1) یا دامنه های عددی کوچکبشر
  • mysql ندارد BOOLEAN نوع ، بنابراین TINYINT(1) در عوض استفاده می شود
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    is_active TINYINT(1) NOT NULL DEFAULT 1,  -- 0 = inactive, 1 = active
    user_role TINYINT UNSIGNED NOT NULL DEFAULT 1  -- 1 = User, 2 = Admin, etc.
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بهترین برای:

✔ وضعیت فعال/غیرفعال (0 یا 1)

r نقش کاربر (1-10)

✔ رتبه بندی (1-5 ستاره)


2. Smallint (2 بایت) – پیشخوان ها و دامنه های کوچک

** مثال: تعداد صندلی های یک تئاتر **

  • سالن های سینما تا 65.535 صندلی، بنابراین SMALLINT UNSIGNED عالی است
CREATE TABLE cinemas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    total_seats SMALLINT UNSIGNED NOT NULL CHECK (total_seats <= 65535)
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بهترین برای:

✔ جمعیت یک شهر کوچک

✔ بازدید صفحه در هر وب سایت کوچک

✔ تعداد دانش آموزان در یک مدرسه


3. Mediomint (3 بایت ، فقط MySQL) – پیشخوان های بزرگ

** مثال: ردیابی نماهای YouTube **

  • یک فیلم یوتیوب با میلیون ها بازدید به یک پیشخوان بزرگتر از SMALLINTبشر
CREATE TABLE videos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    view_count MEDIUMINT UNSIGNED NOT NULL DEFAULT 0
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بهترین برای:

✔ پیگیری تعداد متوسط (به عنوان مثال ، نماهای ویدئویی ، بازدید کنندگان فروشگاه).

ارزان تر از INT برای مواردی که SMALLINT خیلی کوچک است


4. int / Integer (4 بایت) – شناسه های استاندارد و شمارش های بزرگ

** مثال: سفارشات تجارت الکترونیکی **

  • فرآیندهای آمازون میلیون ها سفارش، نیاز به INT (یا BIGINT برای سیستم های بسیار بزرگ).
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    total_price DECIMAL(10,2) NOT NULL,
    order_status TINYINT(1) NOT NULL DEFAULT 0  -- 0 = Pending, 1 = Shipped, etc.
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بهترین برای:

کلیدهای اولیه و ورود خودکار

شناسه های کاربر ، شماره سفارش ، شناسه معاملات

مانده های بانکی (اگر بیش از 2B نباشد)


5. Bigint (8 بایت) – داده های مقیاس گسترده

** مثال: ذخیره شناسه های کاربر رسانه های اجتماعی (فیس بوک ، اینستاگرام ، توییتر) **

  • میلیاردها کاربر لازم بودن BIGINT برای شناسه های منحصر به فرد
CREATE TABLE social_users (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL UNIQUE,
    followers_count BIGINT UNSIGNED NOT NULL DEFAULT 0
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بهترین برای:

پیگیری پیگیری های بزرگ رسانه های اجتماعی

معاملات مالی و بانکداری (مبالغ زیاد)

Timestamps (ذخیره زمان یونیکس: 1700000000 در ثانیه)


6. مورد ویژه: انواع سریال PostgreSQL (شناسه های تقویت کننده خودکار)

پیشنهادات postgresql SERIAL، که به طور خودکار اعداد منحصر به فرد را اختصاص می دهد.

** مثال: معاملات بانکی **

CREATE TABLE bank_transactions (
    id BIGSERIAL PRIMARY KEY,
    user_id INT NOT NULL,
    amount DECIMAL(15,2) NOT NULL,
    transaction_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بهترین برای:

شناسه های تقویت کننده خودکار بدون مدیریت سکانس ها به صورت دستی


از کدام نوع عدد صحیح استفاده شود؟

مورد استفاده بهترین نوع عدد صحیح مثال mysql معادل postgresql
پرچم های بولی (0/1) TINYINT(1) TINYINT(1) BOOLEAN
پیشخوان های کوچک (رتبه بندی ، صندلی) SMALLINT SMALLINT(5) UNSIGNED SMALLINT
پیشخوان های متوسط ​​(نمای ویدیو ، محصولات) MEDIUMINT MEDIUMINT UNSIGNED INTEGER
شناسه استاندارد (کاربران ، سفارشات ، کارمندان) INT INT AUTO_INCREMENT SERIAL
شناسه های بسیار بزرگ (فیس بوک ، کاربران Tiktok ، Timestamps) BIGINT BIGINT AUTO_INCREMENT BIGSERIAL

اعتبار تصویر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا