تعداد فروش | 0 دانشجو |
---|---|
امتیاز | 5.00 از 5 |
پرسش و پاسخ ها | 3 کاربر |
تاریخ انتشار | 01 خرداد 1401 |
محتوا شامل | سورس کد, ویدیو آموزشی |
سطح تمرین | متوسط |
سیستم عامل | ویندوز |
نیازمندی ها | sql server managment |
مدت زمان | 9 دقیقه |
حجم فایل | 30 مگابایت |
در این پست قصد داریم تمرین کوئری نویسی کسر موجودی انبار در اسکیوال سرور را بررسی و پیاده سازی نماییم.
سوال : Triggerبنویسید که به ازای هر فروش ، تعداد فروش انجام شده را از موجودی انبار کسر نماید .
مثال: فرض کنید ما 100 کالا از یک نوع در انبار موجود داریم و به مشتری 5 کالا از همون نوع را میفروشیم انتظار داریم در بخش موجودی 95 کالا در انبار باقی مانده باشد .
نکته : هنگام درج رکورد در جدول فروش انتظار انجام این عملیات را داریم .
مشاهده ویدیو :
مدیریت موجودی انبار یکی از مهمترین عوامل در موفقیت یک فروشگاه و مدیریت زنجیره تأمین است.
مدیریت موجودی انبار شامل مدیریت و کنترل موجودی کالاها، سفارش دادن کالاها، پیشبینی تقاضا و برنامهریزی تولید است.
در این مقاله، به توضیح موجودی انبار، جدول کالاها و تریگر برای کسر موجودی از انبار با درج یک کالا پرداخته میشود.
موجودی انبار به تعداد کالاهایی اشاره دارد که در انبار موجود هستند و در دسترس قرار دارند.
موجودی انبار میتواند بر اساس تعداد کالاها یا مقدار پولی که برای آنها پرداخت شده باشد، محاسبه شود.
در هر صورت، مدیریت موجودی انبار بسیار حائز اهمیت است و باعث بهبود عملکرد فروشگاه و کاهش هزینهها میشود.
یکی از موضوعات مرتبط با کسر موجودی انبار طراحی جدول سبد خرید هست چون تمامی این موارد با سناریو فروشگاه مرتبط میباشند.
جدول کالاها، جدولی است که شامل اطلاعات کالاهای موجود در فروشگاه است.
این جدول شامل فیلدهایی مانند نام کالا، قیمت، شناسه کالا و … میباشد.
با استفاده از این جدول، میتوان موجودی انبار را مدیریت کرد و کالاهای مورد نیاز را خریداری کرد.
با توجه به توضیحاتی که در قسمتهای قبلی ارائه شد، میتوانیم جداول Sales و Product و Inventory را به شکل زیر طراحی کنیم:
جدول Product:
این جدول شامل اطلاعات کالاهای موجود در فروشگاه است.
جدول Inventory:
این جدول شامل موجودی کالاهای موجود در انبار است.
جدول Sales:
این جدول شامل جزئیات فروش کالاها است.
توضیحات:
جدول Product، product_code به عنوان کلید اصلی جدول تعریف میشود.
در جدول Inventory، product_code به ترتیب به عنوان کلید اصلی و به عنوان کلید خارجی در جدول Sales استفاده میشود.
جدول Sales، sale_id به عنوان کلید اصلی جدول و product_code به عنوان کلید خارجی در جدول Inventory استفاده میشود.
توجه کنید که قیمت کالا در جدول Product و جدول Sales ممکن است متفاوت باشد، به همین دلیل در جدول Sales قیمت کالای فروخته شده نیز ذخیره شده است.
همچنین میتوانید نمودار er فروشگاه را نیز مشاهده نمایید.
تریگر در SQL یک برنامه است که بهصورت خودکار اجرا میشود و برای پردازش دادههایی که به دیتابیس اضافه شدهاند، استفاده میشود.
تریگرها معمولاً برای ایجاد یا بهروزرسانی دادهها و یا برای اجرای عملیاتهای خاصی مانند کسر موجودی از انبار با درج یک کالا، استفاده میشوند.
حال با توجه به این توضیحات، میتوانیم یک تریگر برای کسر موجودی از انبار با درج یک کالا بنویسیم.
در این تریگر، با هر بار درج یک ردیف جدید در جدول فروش، موجودی انبار کسر میشود.
در این تریگر، با استفاده از دستور CREATE TRIGGER، یک تریگر با نام reduce_inventory ایجاد میشود.
این تریگر برای رویداد INSERT روی جدول Sales تعریف میشود.
به این معنی که هر بار که در جدول Sales یک ردیف جدید اضافه شود، تریگر اجرا خواهد شد.
همچنین با استفاده از FOR EACH ROW، بیان میشود که تریگر برای هر ردیف جدیدی که به جدول Sales اضافه میشود، باید اجرا شود.
در بخش BEGIN تریگر، با استفاده از دستور UPDATE، فیلد quantity در جدول Inventory که موجودی فعلی کالای مورد نظر را نشان میدهد، به تعداد تعداد کالایی که در ردیف جدید جدول Sales است، کاهش مییابد.
در اینجا NEW به معنی ردیف جدیدی است که به جدول Sales اضافه میشود.
همچنین با استفاده از شرط WHERE، فقط ردیفهایی که کد کالای آنها برابر با کد کالای ردیف جدید در جدول Sales است، بهروزرسانی میشوند.
با استفاده از این تریگر، هر بار که در جدول Sales یک ردیف جدید درج شود، موجودی انبار کالای مورد نظر به تعداد کالایی که در ردیف جدید است، کاهش مییابد.
این کار باعث بهروزرسانی موجودی انبار و کاهش هزینههای نگهداری موجودی میشود.
همچنین با استفاده از تریگر، این عملیات بهصورت خودکار اجرا میشود و نیازی به اجرای دستورات UPDATE جداگانه برای کسر موجودی از انبار وجود ندارد.
در ادامه تمرین های با جواب پایگاه داده را مشاهده نمایید.
Armani –
خیلی خوب بود ممنون از شما
الهام –
ممنون
reza –
عالی بود اموزش
وفایی مقدم –
سپاس
از بخش تمرین SQL میتونید بقیه تمرین هارو هم مشاهده کنید.
ارادتمند