ناوبری پایگاه داده در HarborDB

Guides
آخرین به‌روزرسانی: ۲۷ بهمن ۱۴۰۴

به راهنمای ناوبری پایگاه داده خوش آمدید! HarborDB ابزارهای قدرتمندی برای کاوش و درک پایگاه‌های داده PostgreSQL شما فراهم می‌کند. این راهنما به شما نشان می‌دهد که چگونه به‌طور مؤثر ساختار پایگاه داده خود را مرور کنید، جداول و روابط را بررسی کنید و بیشترین استفاده را از رابط بصری HarborDB ببرید.

رابط ناوبری

نمای کلی نوار کناری

نوار کناری سمت چپ ابزار اصلی ناوبری شماست. این نوار یک نمای سلسله‌مراتبی از ساختار پایگاه داده شما را نمایش می‌دهد:

Connection Name
├── Databases
│   ├── Database 1
│   │   ├── Schemas
│   │   │   ├── public
│   │   │   │   ├── Tables
│   │   │   │   ├── Views
│   │   │   │   ├── Functions
│   │   │   │   └── Sequences
│   │   │   └── other_schemas
│   │   └── Settings
│   └── Database 2
└── System Objects

حالت‌های ناوبری

HarborDB دو حالت اصلی ناوبری را ارائه می‌دهد:

  1. نمای درختی (پیش‌فرض): گسترش سلسله‌مراتبی اشیاء
  2. نمای جستجو: جستجوی سریع در بین تمام اشیاء

کاوش پایگاه‌های داده

مشاهده پایگاه‌های داده موجود

هنگامی که برای اولین بار متصل می‌شوید، فهرستی از پایگاه‌های داده‌ای که به آن‌ها دسترسی دارید را مشاهده خواهید کرد:

  1. اتصال خود را باز کنید در نوار کناری
  2. روی "Databases" کلیک کنید تا فهرست را ببینید
  3. دوبار کلیک کنید روی هر پایگاه داده برای کاوش محتوای آن

اطلاعات پایگاه داده

روی هر پایگاه داده کلیک راست کنید برای دسترسی سریع به:

  • ویژگی‌ها: مشاهده اندازه پایگاه داده، رمزگذاری، مرتب‌سازی
  • تب کوئری جدید: باز کردن ویرایشگر کوئری که از قبل به این پایگاه داده متصل است
  • تازه‌سازی: به‌روزرسانی فهرست پایگاه‌های داده
  • ایجاد پایگاه داده: اگر مجوزهای لازم را دارید

کار با اسکیماها

درک اسکیماها

اسکیماها ظروف منطقی درون پایگاه‌های داده هستند. PostgreSQL به طور پیش‌فرض از اسکیمای public استفاده می‌کند، اما ممکن است با اسکیماهای دیگر مواجه شوید.

کاوش محتوای اسکیما

  1. یک پایگاه داده را باز کنید تا اسکیماهای آن را ببینید
  2. یک اسکیما را باز کنید تا انواع اشیاء را ببینید:
    • جداول: ذخیره‌سازی داده‌ها
    • نمای‌ها (Views): جداول مجازی حاصل از کوئری‌ها
    • توابع: روال‌ها و توابع ذخیره شده
    • دنباله‌ها (Sequences): تولیدکننده‌های عددی خودافزاینده

عملیات اسکیما

روی یک اسکیما کلیک راست کنید برای:

  • ایجاد جدول/نما/تابع جدید
  • تازه‌سازی محتوای اسکیما
  • تنظیم به عنوان پیش‌فرض: این اسکیما را اسکیمای ترجیحی خود کنید

بررسی جداول

نمای ساختار جدول

وقتی پوشه "Tables" را باز می‌کنید، تمام جداول درون اسکیما را مشاهده خواهید کرد. روی هر جدول کلیک کنید تا ببینید:

تب Columns

  • نام ستون‌ها و انواع داده
  • محدودیت‌ها (کلید اصلی، کلید خارجی و غیره)
  • مقادیر پیش‌فرض و وضعیت nullable
  • اطلاعات ذخیره‌سازی

تب Data Preview

  • ۱۰۰ ردیف اول داده‌های جدول
  • ستون‌های قابل مرتب‌سازی (کلیک روی سرستون‌ها)
  • داده‌های قابل فیلتر (کلیک راست روی سرستون‌ها)
  • گزینه‌های صادرسازی سریع

تب Indexes

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

تب Foreign Keys

  • روابط با جداول دیگر
  • جداول و ستون‌های مرجع
  • قوانین cascade

اقدامات سریع جدول

روی هر جدول کلیک راست کنید برای دسترسی فوری به:

| اقدام | توضیح | میانبر صفحه‌کلید | | ------------------- | ------------------------------------------------------ | ---------------- | | Select Top 100 | باز کردن کوئری با SELECT * FROM table LIMIT 100 | ⌘ + Click | | View Structure | باز کردن ساختار جدول در نمای جزئیات | ⌥ + Click | | Generate SELECT | ایجاد کوئری SELECT پایه برای این جدول | | | Generate INSERT | ایجاد الگوی INSERT | | | Export Data | صادرات جدول به CSV/JSON | ⌘ + E | | Refresh | به‌روزرسانی اطلاعات جدول | ⌘ + R |

درک نمای‌ها (Views)

تفاوت View و Table

نمای‌ها شبیه جداول به نظر می‌رسند اما اشیاء مجازی مبتنی بر کوئری‌های SQL هستند:

  • نمای‌های معمولی: تعاریف کوئری ذخیره شده
  • نمای‌های مادی‌شده (Materialized Views): نتایج از پیش محاسبه شده (کش شده)

اطلاعات View

روی هر View کلیک کنید تا ببینید:

  • تعریف: کوئری SQL که View را تعریف می‌کند
  • ستون‌ها: ساختار مجموعه نتایج
  • وابستگی‌ها: جداول و Viewهایی که این View به آن‌ها وابسته است

کار با پایگاه‌های داده بزرگ

فیلتر کردن و جستجو

هنگام برخورد با اشیاء زیاد، از این ویژگی‌ها استفاده کنید:

فیلتر سریع

  1. در کادر جستجو کلیک کنید در بالای نوار کناری
  2. نام شیء را تایپ کنید تا به‌طور لحظه‌ای فیلتر شود
  3. از wildcard استفاده کنید: *users* تمام اشیاء دارای "users" در نام را پیدا می‌کند

جستجوی پیشرفته

  • محدوده جستجو: محدود کردن به جداول، Viewها یا تمام اشیاء
  • کلید حساسیت به حروف: تطابق دقیق حروف
  • پشتیبانی از regex: استفاده از عبارات منظم برای الگوهای پیچیده

اشیاء مورد علاقه

اشیاء پر دسترسی را برای بازیابی سریع علامت‌گذاری کنید:

  1. کلیک راست روی هر شیء
  2. انتخاب "Add to Favorites"
  3. دسترسی به موارد مورد علاقه از بخش Favorites در نوار کناری

بررسی روابط

تصویرسازی روابط جدول

HarborDB به شما کمک می‌کند تا نحوه اتصال جداول را درک کنید:

تصویرسازی کلید خارجی

  1. کلیک راست روی هر جدول دارای کلید خارجی
  2. انتخاب "Show Relationships"
  3. مشاهده نمایش گرافیکی از اتصالات

تحلیل وابستگی

  • دیدن اینکه چه چیزی به این جدول وابسته است
  • شناسایی ارجاعات حلقوی
  • درک تأثیر تغییرات اسکیما

مرورگر روابط

برای پایگاه‌های داده پیچیده، از Relationship Browser استفاده کنید:

  1. باز کردن منوی Tools → Relationship Browser
  2. انتخاب جدول شروع
  3. کاوش اتصالات به صورت بصری
  4. صادر کردن نمودار روابط برای مستندسازی

مثال‌های عملی ناوبری

مثال ۱: کاوش یک پایگاه داده جدید

هنگام اتصال به یک پایگاه داده ناآشنا:

  1. بررسی اندازه پایگاه داده (کلیک راست روی پایگاه داده → Properties)
  2. فهرست کردن تمام اسکیماها و شناسایی اسکیماهای اصلی
  3. مرور تعداد جداول در هر اسکیما
  4. بررسی بزرگترین جداول (مرتب‌سازی بر اساس تعداد ردیف یا اندازه)
  5. جستجوی جداول مستندات (اغلب با نام‌های: docs, documentation, readme)

مثال ۲: یافتن داده‌های خاص

وقتی نیاز به پیدا کردن اطلاعات مشتری دارید:

  1. جستجوی جداول حاوی "customer"، "user" یا "client"
  2. بررسی جداول محتمل برای ستون‌های مرتبط
  3. بررسی کلیدهای خارجی برای یافتن داده‌های مرتبط
  4. استفاده از Data Preview برای نمونه‌گیری از داده‌های واقعی

مثال ۳: درک ساختار برنامه

برای درک نحوه سازماندهی داده‌های یک برنامه:

  1. گروه‌بندی جداول بر اساس پیشوند (مثلاً app_، auth_، report_)
  2. بررسی قراردادهای نام‌گذاری
  3. جستجوی الگوهای کلید خارجی
  4. شناسایی جداول lookup/reference

میانبرهای صفحه‌کلید برای ناوبری

این میانبرها را برای ناوبری کارآمد تسلط پیدا کنید:

| میانبر | عملکرد | | -------- | ---------------------------- | | ⌘ + B | تغییر وضعیت نمایش نوار کناری | | ⌘ + F | تمرکز روی جستجو در نوار کناری | | ⌘ + G | یافتن بعدی در نتایج جستجو | | ⌥ + Click | باز کردن شیء در تب جدید | | ⌘ + Click | باز کردن کوئری SELECT برای جدول | | ⌘ + R | تازه‌سازی نمای فعلی | | ⌘ + . | پاک کردن جستجو/فیلتر | | ⌘ + 1-9 | جابجایی بین بخش‌های نوار کناری |

بهترین شیوه‌های ناوبری

نکات سازماندهی

  1. استفاده از نام‌های معنادار برای اتصالات: شامل محیط (Dev, Prod) و هدف
  2. گروه‌بندی اتصالات مرتبط: Local dev، staging، production
  3. کدگذاری رنگی بر اساس محیط: سبز برای dev، زرد برای staging، قرمز برای prod
  4. ایجاد الگوهای اتصال: برای تنظیمات پایگاه داده مشابه

ملاحظات عملکرد

  1. محدود کردن auto-expansion: همه چیز را به یکباره باز نکنید
  2. استفاده از جستجو به جای مرور برای پایگاه‌های داده بزرگ
  3. بستن اتصالات استفاده نشده برای آزادسازی منابع
  4. پاک کردن دوره‌ای cache برای اسکیماهای بسیار بزرگ

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

  1. استفاده از اعتبارنامه‌های خاص اتصال در صورت امکان
  2. محدود کردن دید اسکیما با مجوزهای مناسب
  3. اجتناب از ذخیره رمزهای عبور production در محیط‌های کمتر امن
  4. ممیزی منظم استفاده از اتصالات

رفع مشکلات ناوبری

خطاهای "Object Not Found"

اگر اشیاء مورد انتظار را نمی‌بینید:

  1. اتصال را تازه‌سازی کنید (کلیک راست → Refresh)
  2. مجوزهای خود را بررسی کنید روی پایگاه داده
  3. تأیید کنید که در اسکیمای صحیح هستید
  4. مطمئن شوید که شیء تغییر نام نداده یا حذف نشده است

عملکرد کند ناوبری

برای پاسخ‌های کند:

  1. کاهش عمق auto-expansion در Preferences
  2. غیرفعال کردن پیش‌نمایش‌های thumbnail برای جداول بزرگ
  3. افزایش timeout کوئری برای اتصالات از راه دور
  4. استفاده از جستجو به جای گسترش درخت

روابط گمشده

اگر کلیدهای خارجی نمایش داده نمی‌شوند:

  1. بررسی کنید که آیا کلیدهای خارجی به درستی تعریف شده‌اند در PostgreSQL
  2. تأیید کنید که مجوز مشاهده اطلاعات محدودیت را دارید
  3. تازه‌سازی متادیتای جدول
  4. بررسی deferred constraint checking

ویژگی‌های پیشرفته ناوبری

کوئری‌های سفارشی برای کاوش

کوئری‌های ذخیره شده برای کاوش پیچیده ایجاد کنید:

-- یافتن تمام جداول با ستون خاص
SELECT
    table_schema,
    table_name,
    column_name,
    data_type
FROM information_schema.columns
WHERE column_name ILIKE '%email%'
ORDER BY table_schema, table_name;

-- فهرست بزرگترین جداول
SELECT
    schemaname,
    tablename,
    pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) as size
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC
LIMIT 20;

نشانک‌گذاری مسیرهای رایج

مسیرهای ناوبری پر دسترسی را ذخیره کنید:

  1. ناوبری به شیء هدف خود
  2. کلیک روی دکمه Bookmark در نوار ابزار
  3. نام‌گذاری نشانک (مثلاً "Customer Analytics Tables")
  4. دسترسی به نشانک‌ها از منوی Bookmarks

صادرسازی ساختار پایگاه داده

ساختار پایگاه داده خود را مستند کنید:

  1. انتخاب اشیاء در نوار کناری
  2. کلیک راست → Export Structure
  3. انتخاب فرمت: SQL، Markdown یا HTML
  4. شامل کردن گزینه‌ها: با داده‌ها، محدودیت‌ها، ایندکس‌ها

مراحل بعدی

اکنون که می‌توانید پایگاه‌های داده را به‌طور مؤثر مرور کنید:

  1. مبانی کوئری - نوشتن و اجرای کوئری‌های SQL را یاد بگیرید
  2. صادرسازی داده‌ها - ذخیره نتایج به CSV یا JSON
  3. بهینه‌سازی عملکرد - جریان کاری پایگاه داده خود را بهینه کنید

دریافت کمک

اگر با مشکلات ناوبری مواجه شدید:

  1. راهنمای پشتیبانی ما را برای رفع عیب بررسی کنید
  2. سؤالات متداول را برای سؤالات رایج ببینید
  3. با پشتیبانی تماس بگیرید برای کمک شخصی‌سازی شده

آیا این مفید بود؟

با ارائه بازخورد به ما کمک کنید این مستندات را بهبود بخشیم.