فصل ۴.
پاسخهای مبتنی بر پایگاه داده (Database-Driven Responses)
برای اینکه برنامه وب Snippetbox ما واقعاً مفید شود، نیاز داریم جایی برای ذخیره (یا پایدارسازی (Persistence)) دادههای وارد شده توسط کاربران داشته باشیم و توانایی پرسوجو (Query) از این مخزن داده به صورت پویا در زمان اجرا را داشته باشیم.
مخازن دادههای (Data Stores) مختلفی وجود دارند که میتوانیم برای برنامه خود استفاده کنیم — هر کدام با مزایا و معایب مختلف — اما ما پایگاه داده رابطهای (Relational Database) محبوب MySQL را انتخاب خواهیم کرد.
در این بخش یاد خواهید گرفت که چگونه:
- نصب یک درایور پایگاه داده (Database Driver) به عنوان یک 'واسط' بین MySQL و برنامه Go شما.
- اتصال به MySQL از برنامه وب خود (به طور خاص، یاد خواهید گرفت که چگونه یک مجموعه از اتصالات قابل استفاده مجدد (Connection Pool) ایجاد کنید).
- ایجاد یک بسته
modelsمستقل (Independent Models Package)، به طوری که منطق پایگاه داده شما قابل استفاده مجدد و از برنامه وب شما جدا باشد. - استفاده از توابع مناسب در بسته
database/sqlGo برای اجرای انواع مختلف دستورات SQL (SQL Statements)، و چگونگی جلوگیری از خطاهای رایج که میتوانند منجر به اتمام منابع سرور شما شوند. - جلوگیری از حملات تزریق SQL (SQL Injection Attacks) با استفاده صحیح از پارامترهای جایگزین (Placeholder Parameters).
- استفاده از تراکنشها (Transactions)، به طوری که بتوانید چندین دستور SQL را در یک عمل اتمی (Atomic Operation) اجرا کنید.
واژهنامه اصطلاحات فنی
| اصطلاح فارسی | معادل انگلیسی | توضیح |
|---|---|---|
| پاسخهای مبتنی بر پایگاه داده | Database-Driven Responses | پاسخهای وب که محتوای آنها از پایگاه داده دریافت میشود |
| پایدارسازی | Persistence | ذخیره دادهها به صورت دائمی برای استفاده در آینده |
| پرسوجو | Query | درخواست اطلاعات خاص از پایگاه داده |
| مخازن داده | Data Stores | سیستمهای ذخیرهسازی داده مانند پایگاههای داده |
| پایگاه داده رابطهای | Relational Database | نوعی پایگاه داده که دادهها را در جداول مرتبط ذخیره میکند |
| درایور پایگاه داده | Database Driver | نرمافزار واسط بین برنامه و پایگاه داده |
| مجموعه اتصالات | Connection Pool | مجموعهای از اتصالات پایگاه داده که میتوانند مجدداً استفاده شوند |
| دستورات SQL | SQL Statements | دستورات استاندارد برای تعامل با پایگاه داده |
| حملات تزریق SQL | SQL Injection Attacks | حملات امنیتی که از طریق ورودیهای مخرب SQL انجام میشوند |
| پارامترهای جایگزین | Placeholder Parameters | مقادیر موقت در دستورات SQL که بعداً با مقادیر واقعی جایگزین میشوند |
| تراکنشها | Transactions | مجموعهای از عملیات پایگاه داده که باید به صورت یکپارچه انجام شوند |
| عمل اتمی | Atomic Operation | عملیاتی که باید به طور کامل انجام شود یا اصلاً انجام نشود |