• 3.1.9
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

Database Forge مجموعه متدهایی برای ساخت و تغییر ساختار دیتابیس فراهم می‌کند. از آن می‌توان برای ایجاد جدول، افزودن یا تغییر ستون، تعریف کلید اصلی و خارجی و حذف یا تغییر نام جدول استفاده کرد. این کلاس برای Migrationهای ساده یا ابزارهای نصب کاربرد دارد.

ساختار و API اصلی

create_database() و drop_database() دیتابیس را ایجاد یا حذف می‌کنند. add_field() ستون تعریف می‌کند، add_key() کلید می‌سازد، create_table() جدول را ایجاد می‌کند، drop_table() حذف می‌کند و modify_column() ساختار ستون را تغییر می‌دهد.

نمونه استفاده

 $this->load->dbforge();
 $fields = array(
     'id' => array('type' => 'INT', 'constraint' => 11, 'auto_increment' => TRUE),
     'name' => array('type' => 'VARCHAR', 'constraint' => 120)
 );
 $this->dbforge->add_field($fields);
 $this->dbforge->add_key('id', TRUE);
 $this->dbforge->create_table('brands', TRUE);

نکته مهم

تغییر Schema در Production باید نسخه‌بندی و قابل بازگشت باشد. پیش از حذف یا تغییر ستون، Backup بگیرید و وابستگی‌های برنامه را بررسی کنید.

مطالعه مرتبط

برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.

متدهای Database Forge

متد یا مفهومکاربرد
add_field()تعریف ستون‌ها.
add_key()تعریف Primary یا Index Key.
create_table()ساخت جدول.
drop_table()حذف جدول.
modify_column()تغییر تعریف ستون.
rename_table()تغییر نام جدول.
create_database() و drop_database()ایجاد یا حذف دیتابیس.

نکات عملی برای دیتابیس

پیش از استفاده در محیط واقعی، Driver و نسخه موتور دیتابیس را با قابلیت‌های موردنیاز تطبیق دهید. Queryهای دارای ورودی کاربر باید Binding داشته باشند، عملیات چندمرحله‌ای باید در Transaction قرار بگیرند و برای Queryهای پرتکرار، Index و Execution Plan بررسی شود. تعداد Queryها و حجم Result نیز روی حافظه و زمان پاسخ اثر دارد.

برای عیب‌یابی، SQL تولیدشده، تعداد ردیف‌های متاثر و زمان اجرا را در محیط توسعه ثبت کنید. در Production اطلاعات محرمانه را از Log حذف کنید و خطاهای دیتابیس را به کاربر نشان ندهید. اگر ساختار جدول تغییر می‌کند، تغییر را نسخه‌بندی و پیش از اجرا Backup بگیرید.

در بازبینی کد، ترتیب و نتیجه متدهای add_field()، add_key()، create_table()، drop_table() را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

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