### مستندات پروژه پایگاه داده سیستم مدیریت مراکز تماس
#### ۱. معرفی پروژه
**عنوان پروژه:** سیستم مدیریت مراکز تماس
**توضیح:** این پروژه برای مدیریت عملیاتهای مختلف مراکز تماس طراحی شده است. سیستم شامل مدیریت تماسها، نمایندگان، مشتریان، پشتیبانی، و گزارشهای مربوط به عملکرد است. هدف اصلی این سیستم، بهبود کارایی در پیگیری تماسها، مدیریت نمایندگان و ارائه خدمات بهتر به مشتریان است.
#### ۲. شرح جداول پایگاه داده
##### جدول مشتریان (`Customers`)
- **توضیح:** این جدول شامل اطلاعات مربوط به مشتریانی است که با مرکز تماس ارتباط برقرار میکنند.
- **فیلدها:**
- **CustomerID:** شناسه منحصر به فرد برای هر مشتری (کلید اصلی).
- **FirstName:** نام مشتری.
- **LastName:** نام خانوادگی مشتری.
- **PhoneNumber:** شماره تماس مشتری.
- **Email:** آدرس ایمیل مشتری.
- **Address:** آدرس محل سکونت مشتری.
##### جدول نمایندگان (`Agents`)
- **توضیح:** این جدول شامل اطلاعات مربوط به نمایندگان مرکز تماس است.
- **فیلدها:**
- **AgentID:** شناسه منحصر به فرد برای هر نماینده (کلید اصلی).
- **FirstName:** نام نماینده.
- **LastName:** نام خانوادگی نماینده.
- **PhoneNumber:** شماره تماس نماینده.
- **Email:** آدرس ایمیل نماینده.
- **HireDate:** تاریخ استخدام نماینده.
- **Position:** سمت نماینده (مثلاً نماینده پشتیبانی، نماینده فروش).
##### جدول تماسها (`Calls`)
- **توضیح:** این جدول شامل اطلاعات مربوط به تماسهای دریافتی و خروجی مرکز تماس است.
- **فیلدها:**
- **CallID:** شناسه منحصر به فرد برای هر تماس (کلید اصلی).
- **CustomerID:** شناسه مشتری که تماس را برقرار کرده است (کلید خارجی که به جدول `Customers` متصل است).
- **AgentID:** شناسه نمایندهای که تماس را پاسخ داده است (کلید خارجی که به جدول `Agents` متصل است).
- **CallDateTime:** تاریخ و زمان برقراری تماس.
- **CallType:** نوع تماس (ورودی، خروجی).
- **Duration:** مدت زمان تماس.
- **Status:** وضعیت تماس (تمام شده، در حال برقراری، لغو شده).
##### جدول پشتیبانی (`SupportTickets`)
- **توضیح:** این جدول شامل اطلاعات مربوط به تیکتهای پشتیبانی مشتریان است.
- **فیلدها:**
- **TicketID:** شناسه منحصر به فرد برای هر تیکت (کلید اصلی).
- **CustomerID:** شناسه مشتری که تیکت را ثبت کرده است (کلید خارجی که به جدول `Customers` متصل است).
- **AgentID:** شناسه نمایندهای که تیکت را مدیریت کرده است (کلید خارجی که به جدول `Agents` متصل است).
- **CreationDate:** تاریخ ایجاد تیکت.
- **ResolutionDate:** تاریخ حل و فصل تیکت.
- **Priority:** اولویت تیکت (بالا، متوسط، پایین).
- **Status:** وضعیت تیکت (باز، در حال پیگیری، بسته شده).
##### جدول گزارشها (`Reports`)
- **توضیح:** این جدول شامل اطلاعات مربوط به گزارشهای عملکرد و آماری مرکز تماس است.
- **فیلدها:**
- **ReportID:** شناسه منحصر به فرد برای هر گزارش (کلید اصلی).
- **ReportDate:** تاریخ تهیه گزارش.
- **ReportType:** نوع گزارش (عملکرد تماس، تحلیل تیکت).
- **Description:** توضیحات گزارش.
- **FilePath:** مسیر فایل گزارش در سیستم.
#### ۳. شرح روابط جداول
- **ارتباط بین جدول تماسها و جدول مشتریان:** هر تماس متعلق به یک مشتری است، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول تماسها و جدول نمایندگان:** هر تماس توسط یک نماینده پاسخ داده میشود، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول پشتیبانی و جدول مشتریان:** هر تیکت پشتیبانی متعلق به یک مشتری است، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول پشتیبانی و جدول نمایندگان:** هر تیکت پشتیبانی توسط یک نماینده مدیریت میشود، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول گزارشها و سایر جداول:** گزارشها میتوانند شامل تحلیلهایی از تماسها و تیکتهای پشتیبانی باشند، بنابراین میتوانند به دادههای جداول `Calls` و `SupportTickets` وابسته باشند.
#### ۴. توضیحات اضافی
- **کلیدهای اصلی:** هر جدول دارای یک کلید اصلی است که بهصورت منحصر به فرد هر رکورد را شناسایی میکند.
- **کلیدهای خارجی:** کلیدهای خارجی برای برقراری ارتباط بین جداول استفاده میشوند. به عنوان مثال، `CustomerID` و `AgentID` در جدول `Calls` به جداول `Customers` و `Agents` متصل است.
#### ۵. مثالهای استفاده
- **دریافت جزئیات تماسهای یک مشتری خاص:**
- با استفاده از `CustomerID` در جدول `Calls` میتوان لیست تمامی تماسهای مربوط به یک مشتری خاص را مشاهده کرد.
- **مشاهده تماسهای پاسخ داده شده توسط یک نماینده خاص:**
- با استفاده از `AgentID` در جدول `Calls` میتوان تمامی تماسهایی که توسط یک نماینده خاص پاسخ داده شدهاند را مشاهده کرد.
- **پیگیری وضعیت تیکتهای پشتیبانی یک مشتری:**
- با استفاده از `CustomerID` در جدول `SupportTickets` میتوان وضعیت تمامی تیکتهای پشتیبانی ثبتشده توسط یک مشتری خاص را مشاهده کرد.
---
این مستندات ساختار و توضیحات ضروری برای درک و استفاده از پایگاه داده سیستم مدیریت مراکز تماس را ارائه میدهد و میتواند بهعنوان راهنمایی برای توسعه و بهبود این سیستم مفید باشد.