### مستندات پروژه پایگاه داده سیستم مدیریت فروشگاه گل
#### ۱. معرفی پروژه
**عنوان پروژه:** سیستم مدیریت فروشگاه گل
**توضیح:** این پروژه برای مدیریت اطلاعات و عملیاتهای مربوط به فروشگاه گل طراحی شده است. سیستم شامل مدیریت گلها، سفارشات، مشتریان، تأمینکنندگان، و پرداختها است. هدف اصلی این سیستم، بهبود کارایی در مدیریت موجودی گلها، پردازش سفارشات، و ارتباط با مشتریان و تأمینکنندگان است.
#### ۲. شرح جداول پایگاه داده
##### جدول گلها (`Flowers`)
- **توضیح:** این جدول شامل اطلاعات مربوط به گلهای موجود در فروشگاه است.
- **فیلدها:**
- **FlowerID:** شناسه منحصر به فرد برای هر گل (کلید اصلی).
- **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` متصل است).
- **FlowerID:** شناسه گل (کلید خارجی که به جدول `Flowers` متصل است).
- **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` در جدول `Flowers` به جدول `Suppliers` و `OrderID` در جدول `OrderDetails` به جدول `Orders` متصل است.
#### ۵. مثالهای استفاده
- **دریافت جزئیات سفارشات یک مشتری خاص:**
- با استفاده از `CustomerID` در جدول `Orders` و سپس با استفاده از `OrderID` در جدول `OrderDetails`، میتوان لیست تمامی گلهای سفارشدادهشده توسط یک مشتری خاص را مشاهده کرد.
- **مشاهده موجودی گلها و تأمینکنندگان:**
- با استفاده از `SupplierID` در جدول `Flowers`، میتوان لیست تمامی گلهای تأمینشده توسط یک تأمینکننده خاص و موجودی آنها را مشاهده کرد.
- **پیگیری پرداختها برای یک سفارش خاص:**
- با استفاده از `OrderID` در جدول `Payments`، میتوان لیست تمامی پرداختهای مربوط به یک سفارش خاص را مشاهده کرد.
---
این مستندات ساختار و توضیحات ضروری برای درک و استفاده از پایگاه داده سیستم مدیریت فروشگاه گل را ارائه میدهد و میتواند بهعنوان راهنمایی برای توسعه و بهبود این سیستم مفید باشد.