সফটওয়্যার ডেভেলপমেন্ট লাইফ সাইকেল (SDLC) পর্যায় ও অংশসমূহ HRM and Payroll Project

⌘K
  1. Home
  2. সফটওয়্যার ডেভেলপমেন্ট লা...
  3. 4. ডাটাবেজ ডিজাইন (Databa...
  4. ধাপ ৩: ডেটাবেজ ডিজাইন পার...
  5. 05. শিফট ব্যবস্থাপনা (Shift Management)

05. শিফট ব্যবস্থাপনা (Shift Management)

আপনার মাল্টি-কোম্পানি অ্যাপ্লিকেশনের জন্য Shift Management মডিউল আরও সঠিকভাবে ডিজাইন করার জন্য প্রতিটি টেবিলে কোম্পানির সম্পর্ক অন্তর্ভুক্ত করা হবে। এতে প্রতিটি রেকর্ড নির্দিষ্ট কোম্পানির অধীনে সঠিকভাবে সংরক্ষণ হবে, যাতে ডেটা সম্পূর্ণরূপে পৃথক থাকে। temporary_shift_schedules টেবিলে week_number ফিল্ডের পরিবর্তে তারিখের রেঞ্জ ব্যবহার করলে আরও ফ্লেক্সিবিলিটি আসবে, কারণ এতে কাস্টম ডেট রেঞ্জে টেম্পোরারি শিফট নির্ধারণ করা সহজ হবে।

আপডেটেড টেবিল ডিজাইন

1. shifts (প্রধান টেবিল)

Field NameData TypeDescription
shift_idINT (PK)প্রতিটি শিফটের জন্য ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি (যার সাথে শিফট সম্পর্কিত)
shift_nameVARCHAR(100)শিফটের নাম
shift_codeVARCHAR(20)শিফটের কোড (ইউনিক আইডেন্টিফায়ার)
descriptionTEXTশিফটের বিবরণ
shift_typeENUMশিফটের ধরন (যেমন, Day, Night, Rotational)
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ
statusENUMশিফটের অবস্থা (Active, Inactive)

রিলেশন: company_id ফিল্ডটি companies টেবিলের সাথে সংযুক্ত থাকবে, নিশ্চিত করবে প্রতিটি শিফট নির্দিষ্ট কোম্পানির অধীনে আছে।

2. shift_timings (শিফটের সময়সূচী টেবিল)

Field NameData TypeDescription
timing_idINT (PK)সময়সূচী বা শিডিউলের জন্য ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি
shift_idINT (FK)শিফটের আইডি
start_timeTIMEশিফট শুরুর সময়
end_timeTIMEশিফট শেষের সময়
duration_hoursDECIMAL(4,2)শিফটের মোট সময়কাল (ঘণ্টায়)
effective_dateDATEকার্যকরী তারিখ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: shift_id ফিল্ডটি shifts টেবিলের সাথে সংযুক্ত থাকবে এবং company_id প্রতিটি সময়সূচীকে নির্দিষ্ট কোম্পানির অধীনে রাখবে।

3. shift_assignments (শিফটে কর্মীদের অ্যাসাইনমেন্ট)

Field NameData TypeDescription
assignment_idINT (PK)অ্যাসাইনমেন্টের জন্য ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি
shift_idINT (FK)শিফটের আইডি
employee_idINT (FK)কর্মীর আইডি
assignment_dateDATEঅ্যাসাইনমেন্টের তারিখ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: company_id নিশ্চিত করবে যে প্রতিটি অ্যাসাইনমেন্ট নির্দিষ্ট কোম্পানির অধীনে এবং shift_idemployee_id ফিল্ডগুলো shiftsemployees টেবিলের সাথে সংযুক্ত থাকবে।

4. default_shift_assignments (ডিফল্ট শিফট নির্ধারণ)

Field NameData TypeDescription
default_assignment_idINT (PK)ডিফল্ট শিফট অ্যাসাইনমেন্টের ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি
employee_idINT (FK)কর্মীর আইডি (ডিফল্ট শিফটের জন্য)
shift_idINT (FK)ডিফল্ট শিফটের আইডি
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: company_id, employee_id, ও shift_id employees এবং shifts টেবিলের সাথে সংযুক্ত থাকবে, প্রতিটি কর্মীর জন্য নির্দিষ্ট ডিফল্ট শিফট নির্ধারণ করবে।

5. temporary_shift_schedules (টেম্পোরারি শিফট পরিকল্পনা)

Field NameData TypeDescription
temp_schedule_idINT (PK)টেম্পোরারি শিডিউলের ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি
department_idINT (FK)ডিপার্টমেন্টের আইডি
shift_idINT (FK)টেম্পোরারি শিফটের আইডি
start_dateDATEটেম্পোরারি শিফট শুরুর তারিখ
end_dateDATEটেম্পোরারি শিফট শেষের তারিখ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: company_id, department_id এবং shift_id departments এবং shifts টেবিলের সাথে সংযুক্ত থাকবে, যা প্রতিটি ডিপার্টমেন্টের জন্য সপ্তাহ ভিত্তিক টেম্পোরারি শিফট নির্ধারণ সহজতর করবে।

6. shift_breaks (শিফটের ব্রেক সময়)

Field NameData TypeDescription
break_idINT (PK)ব্রেক সময়ের জন্য ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি
shift_idINT (FK)শিফটের আইডি
break_start_timeTIMEব্রেক শুরুর সময়
break_end_timeTIMEব্রেক শেষের সময়
break_durationDECIMAL(4,2)ব্রেকের সময়কাল (ঘণ্টায়)
descriptionTEXTব্রেকের বিবরণ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: company_id এবং shift_id নিশ্চিত করবে প্রতিটি ব্রেক নির্দিষ্ট কোম্পানি ও শিফটের অধীনে থাকে।

7. shift_exceptions (শিফটে ব্যতিক্রম)

Field NameData TypeDescription
exception_idINT (PK)ব্যতিক্রমের জন্য ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি
shift_idINT (FK)শিফটের আইডি
employee_idINT (FK)কর্মীর আইডি
exception_dateDATEব্যতিক্রম প্রয়োগের তারিখ
exception_reasonTEXTব্যতিক্রমের কারণ
updated_start_timeTIMEপরিবর্তিত শুরুর সময় (যদি প্রযোজ্য)
updated_end_timeTIMEপরিবর্তিত শেষের সময় (যদি প্রযোজ্য)
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: company_id, shift_id, এবং employee_id নিশ্চিত করবে যে প্রতিটি শিফট ব্যতিক্রম নির্দিষ্ট কোম্পানির অধীনে এবং কর্মী ও শিফটের সাথে সম্পর্কিত।

Shift Management মডিউলটি কীভাবে কাজ করবে তা দেখাতে পারি। ধরে নিচ্ছি আমাদের গার্মেন্টস কোম্পানির নাম “ABC Garments” এবং এতে বিভিন্ন ডিপার্টমেন্ট ও শিফট রয়েছে।

Step 1: Company Setup – ABC Garments

Company Table Entry:

  • Company ID: 1
  • Company Name: ABC Garments
  • Other Details: (ঠিকানা, যোগাযোগ ইত্যাদি)

Step 2: Department Setup

আমাদের ABC Garments কোম্পানিতে বিভিন্ন ডিপার্টমেন্ট রয়েছে:

  • ডিপার্টমেন্ট: সেলাই, কাটিং, ফিনিশিং, কিউসি (QC), প্যাকেজিং

Department Table Entries:

Department IDCompany IDDepartment Name
11সেলাই
21কাটিং
31ফিনিশিং
41কিউসি
51প্যাকেজিং

Step 3: Shift Setup

গার্মেন্টসের কাজ প্রায়শই বিভিন্ন শিফটে ভাগ করা হয়, যেমন দিন শিফট, রাত শিফট এবং রোটেশনাল শিফট

Shifts Table Entries:

Shift IDCompany IDShift NameShift CodeShift TypeStatus
11দিন শিফটDAY1DayActive
21রাত শিফটNIGHT1NightActive
31রোটেশনালROTATE1RotationalActive

Shift Timings Table Entries:

Timing IDShift IDStart TimeEnd TimeEffective Date
1108:00 AM04:00 PM2023-10-01
2208:00 PM04:00 AM2023-10-01
3306:00 AM02:00 PM2023-10-01
4302:00 PM10:00 PM2023-10-01

Step 4: Employee Setup

কর্মী সংযোজন করা হবে তাদের ডিপার্টমেন্ট এবং ডিফল্ট শিফট অ্যাসাইনমেন্ট দিয়ে। উদাহরণস্বরূপ:

Employee Table Entries:

Employee IDCompany IDDepartment IDNameDesignation
10111রাহিমমেশিন অপারেটর
10212করিমকাটিং অপারেটর
10313সুমনফিনিশার
10414মনিরাQC ইন্সপেক্টর

Default Shift Assignments Table Entries:

Default Assignment IDEmployee IDShift ID
11011
21022
31031
41043

Step 5: Shift Assignments

প্রত্যেক কর্মীকে একটি নির্দিষ্ট শিফটে অ্যাসাইন করা হবে:

Shift Assignments Table Entries:

Assignment IDShift IDEmployee IDAssignment Date
111012023-10-28
221022023-10-28
311032023-10-28
431042023-10-28

Step 6: Temporary Shift Schedules

প্রয়োজনীয়তার ভিত্তিতে কিছু কর্মীকে ভিন্ন শিফটে কাজ করানোর জন্য টেম্পোরারি শিফট নির্ধারণ করা যেতে পারে।

Temporary Shift Schedules Table Entries:

Temp Schedule IDDepartment IDWeek NumberShift IDStart DateEnd Date
11132023-11-012023-11-07

Step 7: Shift Breaks

শিফট অনুযায়ী ব্রেকের সময় ও এর ধরন নির্ধারণ করা যাবে।

Shift Breaks Table Entries:

Break IDShift IDBreak Start TimeBreak End TimeDescription
1112:00 PM12:30 PMLunch Break

Step 8: Shift Exceptions

শিফটের সময়ে যদি কোনো ব্যতিক্রম হয়, সেটাও রেকর্ড করা যাবে।

Shift Exceptions Table Entries:

Exception IDShift IDEmployee IDException DateException Reason
111012023-10-29Late Arrival
221022023-10-29Early Leave

ব্যবস্থাপনা চিত্র

  1. ABC Garments কোম্পানির সব কর্মীকে শিফটে অ্যাসাইন করা হয়েছে, ডিফল্ট ও টেম্পোরারি শিফট অনুযায়ী।
  2. শিফট ব্যতিক্রম ফিচারটি ব্যবহার করে কর্মীদের শিফটে অনুপস্থিতি, দেরি, বা সময়ের বাইরে কাজ করার জন্য একটি অতিরিক্ত রেকর্ড রাখা হয়েছে।

এভাবে Shift Management মডিউলটি গার্মেন্টস কোম্পানির শিফট, সময়সূচী এবং কর্মী অ্যাসাইনমেন্টগুলোর সুষ্ঠু ও সহজ ব্যবস্থাপনা নিশ্চিত করতে সহায়ক হবে।

How can we help?