### مستندات پروژه پایگاه داده سیستم مدیریت فروشگاه لوازم تحریر
#### ۱. معرفی پروژه
**عنوان پروژه:** سیستم مدیریت فروشگاه لوازم تحریر
**توضیح:** این پروژه برای مدیریت کارآمد موجودی کالاها، فروش، و سفارشات یک فروشگاه لوازم تحریر طراحی شده است. هدف از این سیستم، سازماندهی اطلاعات مشتریان، محصولات، سفارشات و جزئیات هر سفارش به صورت دقیق و منسجم است.
#### ۲. شرح جداول پایگاه داده
##### جدول مشتریان (`Customers`)
- **توضیح:** این جدول شامل اطلاعات کلی مشتریانی است که از فروشگاه خرید میکنند.
- **فیلدها:**
- **CustomerID:** شناسه منحصر به فرد هر مشتری که به عنوان کلید اصلی مورد استفاده قرار میگیرد.
- **FirstName:** نام مشتری.
- **LastName:** نام خانوادگی مشتری.
- **PhoneNumber:** شماره تلفن تماس مشتری.
- **Email:** آدرس ایمیل مشتری.
- **Address:** آدرس محل سکونت یا کار مشتری.
- **City:** شهر محل اقامت مشتری.
- **PostalCode:** کد پستی مربوط به آدرس مشتری.
##### جدول محصولات (`Products`)
- **توضیح:** این جدول اطلاعات مربوط به لوازم تحریری که در فروشگاه موجود هستند را ذخیره میکند.
- **فیلدها:**
- **ProductID:** شناسه منحصر به فرد برای هر محصول که به عنوان کلید اصلی استفاده میشود.
- **ProductName:** نام محصول.
- **Category:** دستهبندی محصول (مانند خودکار، دفتر، مداد و غیره).
- **Supplier:** نام تامینکننده محصول.
- **PurchasePrice:** قیمت خرید محصول.
- **SalePrice:** قیمت فروش محصول.
- **StockQuantity:** مقدار موجودی محصول در فروشگاه.
##### جدول سفارشات (`Orders`)
- **توضیح:** این جدول تمامی سفارشات انجام شده توسط مشتریان را ثبت میکند.
- **فیلدها:**
- **OrderID:** شناسه منحصر به فرد هر سفارش که به عنوان کلید اصلی به کار میرود.
- **CustomerID:** شناسه مشتری که سفارش را انجام داده است (کلید خارجی که به جدول `Customers` ارتباط دارد).
- **OrderDate:** تاریخ ثبت سفارش.
- **TotalAmount:** مبلغ کل سفارش.
##### جدول جزئیات سفارشات (`OrderDetails`)
- **توضیح:** این جدول شامل جزئیات مربوط به هر سفارش، از جمله محصولات خریداری شده و تعداد آنها است.
- **فیلدها:**
- **OrderDetailID:** شناسه منحصر به فرد برای هر جزئیات سفارش که به عنوان کلید اصلی استفاده میشود.
- **OrderID:** شناسه سفارش مربوطه (کلید خارجی که به جدول `Orders` ارتباط دارد).
- **ProductID:** شناسه محصول (کلید خارجی که به جدول `Products` ارتباط دارد).
- **Quantity:** تعداد محصول سفارش داده شده.
- **UnitPrice:** قیمت واحد محصول در زمان سفارش.
#### ۳. شرح روابط جداول
- **ارتباط بین جدول مشتریان و جدول سفارشات:** هر مشتری میتواند چندین سفارش داشته باشد، بنابراین بین این دو جدول یک ارتباط یک به چند (One-to-Many) برقرار است.
- **ارتباط بین جدول سفارشات و جدول جزئیات سفارشات:** هر سفارش میتواند شامل چندین محصول باشد، بنابراین بین این دو جدول نیز یک ارتباط یک به چند (One-to-Many) وجود دارد.
- **ارتباط بین جدول محصولات و جدول جزئیات سفارشات:** هر محصول میتواند در چندین سفارش مختلف حضور داشته باشد، لذا بین این دو جدول نیز یک ارتباط یک به چند (One-to-Many) برقرار است.
#### ۴. توضیحات اضافی
- **کلیدهای اصلی:** هر جدول دارای یک کلید اصلی است که بهصورت منحصر به فرد هر رکورد را شناسایی میکند.
- **کلیدهای خارجی:** کلیدهای خارجی برای برقراری ارتباط بین جداول استفاده میشوند، مثلاً `CustomerID` در جدول `Orders` و `ProductID` در جدول `OrderDetails` به جداول مرتبط خود متصل هستند.
#### ۵. مثالهای استفاده
- **دریافت لیست تمام سفارشات انجامشده توسط یک مشتری خاص:**
- با استفاده از شناسه مشتری، میتوان تمام سفارشات ثبت شده توسط او را از جدول `Orders` بازیابی کرد.
- **بررسی موجودی محصولاتی که کمتر از یک مقدار خاص هستند:**
- با استفاده از فیلد `StockQuantity` در جدول `Products` میتوان محصولات با موجودی کم را شناسایی کرد.
- **محاسبه درآمد کل فروشگاه در یک بازه زمانی مشخص:**
- با جمع کردن مقادیر `TotalAmount` از جدول `Orders` برای سفارشات ثبتشده در یک بازه زمانی معین، میتوان درآمد کلی را محاسبه کرد.
---
این مستندات ساختار و توضیحات ضروری برای درک پایگاه داده سیستم مدیریت فروشگاه لوازم تحریر را ارائه میدهد و میتواند بهعنوان راهنمایی برای استفاده و توسعه بیشتر این سیستم مفید باشد.