PDA

View Full Version : سوال: ایجاد تقویم کاری در برنامه جهت محاسبات زمانهای کاری و میزان توقفات ماشینها و تجهیزات یک کارخانه



ali190
یک شنبه 22 مرداد 1391, 00:53 صبح
باسلام و عرض خسته نباشید و با آرزوی قبولی طاعاتت و عبادات همه شما روزه داران عزیز
من در حال ساخت برنامه ای هستم که قرار هست در اون میزان کارکرد ماشین آلات و تجهزات یک کارخونه و همچنین میزان توقفات دستگاه های موجود در این کارخونه محاسبه بشه.در واقع میزان توقفات ی دستگاه باید نسبت به زمانهای در دسترس بودن دستگاه ها محاسبه بشه.
برای اینکه بشه یه همچین کاری رو انجام داد بنظرم میبایست یه قسمت به عنوان تقویم در برنامه ام داشته باشم. قسمت تقویم باید قابلیت ایجاد یک تقویم کاری جدید رو داشته باشه. برای مثال:
از روز شنبه تا چهار شنبه ساعت شروع 8:00 تا 17:00
روز پنجشنبه از ساعت 8:00 الی 13:00
روز جمعه تعطیل
حال براساس این الگو یک تقویم کاری جدید ایجاد میکنیم ، بعد از ایجاد یک تقویم جدید باید این قابلیت نیز وجود داشته باشد که بتوان بر روی تاریخای دلخواه رفت و در آن تغییراتی همچون درج تعطیلات رسمی و نیز تغییر ساعت کاری در برخی از روز ها (مثلاً شروع ساعت کاری در روز پس از شبهای قدر در ساعت 9:00 صبح) را بوجود آورد.
حال با استفاده از این تقویم میتوان گفت که وقتی میگوییم یک دستگاه در کارخانه وقتی ازساعت 9:30 روز 18/05/91 لغایت ساعت 16:50 روز 24/05/91 خراب بود برحسب الگوی تقویمی اختصاص یافته به این دستگاه به چه میزان توقف داشته است.
نکته مهم دیگر اینست که باید بتوان به صورت نامحدود الگوی تقویمی ایجاد نمود و برای هر الگو نامی را در نظر گرفت ، چون ممکن است هر کدام از تجهیزات و دستگاه ای کار خانه براسا یک الگوی تقویمی کار کند (مثلاً تجهیزاتی که شیفت کاری آنها 24 ساعته هست).
من در یک نرم افزار یک همچنین امکانی رو دیده بودم که تصویرش رو در اینجا قرار میدم:

http://eup.iwoly.com/pic/c4e5249f45d8.jpg
میخواست بدونم چطور میتونم با استفاده از دیتابیس این مدل تقویمی رو در برنامه ام برای انجام محاسبات پیاده سازی کنم؟
در دوستان خواهشمندم نظارت و تجربیات خودشون در اینجا به اشتراک بگذارند.
خیلی خیلی ممنونم
یاعلی

ali190
دوشنبه 23 مرداد 1391, 19:34 عصر
سلام
دوستان عزیز منظر نظرات راهگشای شما هستم.
ممنون
یاعلی

hakim22
سه شنبه 24 مرداد 1391, 12:08 عصر
به نظرم میشه اطلاعات رو به صورت یک رشته درون یک فیلد بنویسید . ساعات شروع و پایان و تاریخ ها و بازههای زمانی رو با سمی کولون جدا کنید و یک تابع بنویسید که اون اطلاعات رو پردازش کنه و بعد به تاریخ برگردونه و بلعکس

راه بهتر استفاده از XML هست. شی خودتون رو تعریف کنید. بعد همه ی دادها رو به صورت XML در فیلدی از نوع XML درون دیتابیس ذخیره کنید.

مشکل شما دیتابیس نیست ! مشکل شما پیدا کردن یک ساختار مناسب برای ذخیره اطلاعات با جزئیات زیاده .
من یک ساختار درختی رو به شما پیشنهاد می کنم. به این شکل که هر نود میتونه یک دستگاه باشه و بعد نودهای زیرش هر کدام برای یک روز و هر روز به تعداد بازه های زمانی کارکرد یک زیر نود داشته باشه و کل درخت برای یک دستگاه در نظر گرفته بشه !

amirzandi
سه شنبه 24 مرداد 1391, 14:28 عصر
به نظر من شما روزهای سال را در دیتابیس insert کنید ، بعد از آن هر روز یک id خواهد داشت که با استفاده از آن می توانید به تاریخ مورد نظر reference اضافه کنید.

این Table را با Table های دیگر برنامه relational کنید...نباید زیاد سخت باشه.

ali190
سه شنبه 24 مرداد 1391, 16:48 عصر
به نظر من شما روزهای سال را در دیتابیس insert کنید ، بعد از آن هر روز یک id خواهد داشت که با استفاده از آن می توانید به تاریخ مورد نظر reference اضافه کنید.

این Table را با Table های دیگر برنامه relational کنید...نباید زیاد سخت باشه.
سلام
در این حالت حجم اطلاعات بسیار زیاد میشه ؛ فرض کنید اگر تقویممون بی نهایت باشه چی؟ مثلاً تا سال 1460 باید بیشتر از 26000 رکورد ثبت کرد و اگر من چند تا تقویم بخوام بسازم که دیگه حجم رکوردها خیلی خیلی زیاد میشه.
راه بهتری به نظرتون نمیرسه.
یاعلی

mahdy.asia
پنج شنبه 26 مرداد 1391, 18:17 عصر
از حجم دیتابیس نترس تو برای اینکار ابتدا بانک های اطلاعاتی مورد نیازت رو تعریف کن نمودار روابط بانک های اطلاعاتی رو ترسیم کن شما اگر اطلاعات 100 سال رو در یک جدول نگهداری کنی برای هر روز یک رکورد می شود 100*256 می شود 25600 رکورد یک جدول هم داری اطلاعات ماشین ها 100 رکورد یک جدول هم داری اطلاعات کارکرد ماشین آلات که این اطلاعات می تواند بصورت اتوماتیک وارد جداول گردد یا بوسیله کاربر