### مستندات پروژه پایگاه داده سیستم مدیریت فروشگاه اسباببازی
#### ۱. معرفی پروژه
**عنوان پروژه:** سیستم مدیریت فروشگاه اسباببازی
**توضیح:** این پروژه برای مدیریت اطلاعات و عملیاتهای مربوط به فروشگاه اسباببازی طراحی شده است. سیستم شامل مدیریت محصولات اسباببازی، مشتریان، سفارشات، تأمینکنندگان و پرداختها است. هدف اصلی این سیستم، بهبود کارایی در مدیریت موجودی اسباببازیها، پردازش سفارشات، و ارتباط با مشتریان و تأمینکنندگان است.
#### ۲. شرح جداول پایگاه داده
##### جدول اسباببازیها (`Toys`)
- **توضیح:** این جدول شامل اطلاعات مربوط به اسباببازیهای موجود در فروشگاه است.
- **فیلدها:**
- **ToyID:** شناسه منحصر به فرد برای هر اسباببازی (کلید اصلی).
- **Name:** نام اسباببازی.
- **Description:** توضیحات اسباببازی.
- **Price:** قیمت هر اسباببازی.
- **StockQuantity:** تعداد موجودی اسباببازی در انبار.
- **SupplierID:** شناسه تأمینکننده اسباببازی (کلید خارجی که به جدول `Suppliers` متصل است).
##### جدول تأمینکنندگان (`Suppliers`)
- **توضیح:** این جدول شامل اطلاعات مربوط به تأمینکنندگان اسباببازیها است.
- **فیلدها:**
- **SupplierID:** شناسه منحصر به فرد برای هر تأمینکننده (کلید اصلی).
- **Name:** نام تأمینکننده.
- **ContactPerson:** نام شخص تماس با تأمینکننده.
- **PhoneNumber:** شماره تماس تأمینکننده.
- **Email:** آدرس ایمیل تأمینکننده.
- **Address:** آدرس تأمینکننده.
##### جدول مشتریان (`Customers`)
- **توضیح:** این جدول شامل اطلاعات مربوط به مشتریانی است که از فروشگاه اسباببازی خرید میکنند.
- **فیلدها:**
- **CustomerID:** شناسه منحصر به فرد برای هر مشتری (کلید اصلی).
- **FirstName:** نام مشتری.
- **LastName:** نام خانوادگی مشتری.
- **Email:** آدرس ایمیل مشتری.
- **PhoneNumber:** شماره تماس مشتری.
- **Address:** آدرس محل سکونت مشتری.
##### جدول سفارشات (`Orders`)
- **توضیح:** این جدول شامل اطلاعات مربوط به سفارشات مشتریان است.
- **فیلدها:**
- **OrderID:** شناسه منحصر به فرد برای هر سفارش (کلید اصلی).
- **CustomerID:** شناسه مشتری که سفارش را ثبت کرده است (کلید خارجی که به جدول `Customers` متصل است).
- **OrderDate:** تاریخ ثبت سفارش.
- **TotalAmount:** مبلغ کل سفارش.
- **Status:** وضعیت سفارش (در حال پردازش، تکمیل شده، لغو شده).
##### جدول جزئیات سفارشات (`OrderDetails`)
- **توضیح:** این جدول شامل اطلاعات دقیق در مورد هر اسباببازی در سفارشات است.
- **فیلدها:**
- **OrderDetailID:** شناسه منحصر به فرد برای هر رکورد جزئیات سفارش (کلید اصلی).
- **OrderID:** شناسه سفارش (کلید خارجی که به جدول `Orders` متصل است).
- **ToyID:** شناسه اسباببازی (کلید خارجی که به جدول `Toys` متصل است).
- **Quantity:** تعداد اسباببازیها در سفارش.
- **Price:** قیمت هر اسباببازی (قیمت در زمان سفارش).
##### جدول پرداختها (`Payments`)
- **توضیح:** این جدول شامل اطلاعات مربوط به پرداختهای انجامشده برای سفارشات است.
- **فیلدها:**
- **PaymentID:** شناسه منحصر به فرد برای هر پرداخت (کلید اصلی).
- **OrderID:** شناسه سفارش (کلید خارجی که به جدول `Orders` متصل است).
- **PaymentDate:** تاریخ پرداخت.
- **Amount:** مبلغ پرداختشده.
- **PaymentMethod:** روش پرداخت (کارت اعتباری، نقدی، انتقال بانکی).
#### ۳. شرح روابط جداول
- **ارتباط بین جدول اسباببازیها و جدول تأمینکنندگان:** هر اسباببازی توسط یک تأمینکننده خاص تأمین میشود، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول سفارشات و جدول مشتریان:** هر سفارش توسط یک مشتری خاص ثبت میشود، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
- **ارتباط بین جدول سفارشات و جدول جزئیات سفارشات:** هر سفارش میتواند شامل چندین اسباببازی باشد، بنابراین بین این دو جدول یک ارتباط یک به چند (One-to-Many) برقرار است.
- **ارتباط بین جدول اسباببازیها و جدول جزئیات سفارشات:** هر اسباببازی میتواند در چندین سفارش وجود داشته باشد، بنابراین بین این دو جدول یک ارتباط یک به چند (One-to-Many) برقرار است.
- **ارتباط بین جدول پرداختها و جدول سفارشات:** هر پرداخت مربوط به یک سفارش خاص است، بنابراین بین این دو جدول یک ارتباط چند به یک (Many-to-One) برقرار است.
#### ۴. توضیحات اضافی
- **کلیدهای اصلی:** هر جدول دارای یک کلید اصلی است که بهصورت منحصر به فرد هر رکورد را شناسایی میکند.
- **کلیدهای خارجی:** کلیدهای خارجی برای برقراری ارتباط بین جداول استفاده میشوند. به عنوان مثال، `SupplierID` در جدول `Toys` به جدول `Suppliers` و `OrderID` در جدول `OrderDetails` به جدول `Orders` متصل است.
#### ۵. مثالهای استفاده
- **دریافت جزئیات سفارشات یک مشتری خاص:**
- با استفاده از `CustomerID` در جدول `Orders` و سپس با استفاده از `OrderID` در جدول `OrderDetails`، میتوان لیست تمامی اسباببازیهای سفارشدادهشده توسط یک مشتری خاص را مشاهده کرد.
- **مشاهده موجودی اسباببازیها و تأمینکنندگان:**
- با استفاده از `SupplierID` در جدول `Toys`، میتوان لیست تمامی اسباببازیهای تأمینشده توسط یک تأمینکننده خاص و موجودی آنها را مشاهده کرد.
- **پیگیری پرداختها برای یک سفارش خاص:**
- با استفاده از `OrderID` در جدول `Payments`، میتوان لیست تمامی پرداختهای مربوط به یک سفارش خاص را مشاهده کرد.
---
این مستندات ساختار و توضیحات ضروری برای درک و استفاده از پایگاه داده سیستم مدیریت فروشگاه اسباببازی را ارائه میدهد و میتواند بهعنوان راهنمایی برای توسعه و بهبود این سیستم مفید باشد.