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

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

09. ডকুমেন্ট ব্যবস্থাপনা (Document Management)

আপনার জন্য মাল্টি-কোম্পানি ভিত্তিক এবং প্রতিটি কোম্পানির সাথে সম্পর্কিত একটি উন্নত ডকুমেন্ট ব্যবস্থাপনা (Document Management) মডিউলের ডেটাবেজ ডিজাইন নিচে প্রদান করা হলো। প্রতিটি টেবিলের কাজ, ফিল্ডের বিবরণ, এবং রিলেশন দেয়া হয়েছে যা একটি জটিল ডকুমেন্ট ম্যানেজমেন্ট সিস্টেমের জন্য আদর্শ।


Document Management Database Design with Field Details

স্টেপ ১: Document Types Creation

1. document_types টেবিল:
এই টেবিলটি বিভিন্ন ধরনের ডকুমেন্ট সংরক্ষণ করবে, যেমন পরিচয়পত্র, ঠিকানা প্রমাণ, চুক্তি ইত্যাদি। প্রতিটি কোম্পানির জন্য আলাদাভাবে ব্যবহৃত হতে পারে।

Field NameData TypeDescription
document_type_idINT (PK)প্রতিটি ডকুমেন্ট ধরণের জন্য ইউনিক আইডি
company_idINT (FK)কোম্পানির আইডি (যার সাথে ডকুমেন্ট ধরন সম্পর্কিত)
document_type_nameVARCHAR(50)ডকুমেন্টের ধরন (যেমন, ID Proof, Address Proof)
descriptionTEXTডকুমেন্টের বিবরণ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

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


স্টেপ ২: Document Categories Creation

2. document_categories টেবিল:
এই টেবিলটি প্রতিটি document_type এর জন্য ডকুমেন্ট ক্যাটাগরি সংরক্ষণ করবে। যেমন, পরিচয় প্রমাণের জন্য জাতীয় পরিচয়পত্র, পাসপোর্ট, ড্রাইভিং লাইসেন্স ইত্যাদি।

Field NameData TypeDescription
category_idINT (PK)প্রতিটি ডকুমেন্ট ক্যাটাগরির জন্য ইউনিক আইডি
document_type_idINT (FK)ডকুমেন্টের ধরণ আইডি (document_types থেকে)
category_nameVARCHAR(50)ডকুমেন্ট ক্যাটাগরির নাম
descriptionTEXTডকুমেন্ট ক্যাটাগরির বিবরণ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: document_type_id document_types টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ক্যাটাগরি নির্দিষ্ট ডকুমেন্টের ধরণের অন্তর্ভুক্ত।


স্টেপ ৩: Employee Document Storage

3. employee_documents টেবিল:
এই টেবিলটি কর্মীদের ডকুমেন্ট সংরক্ষণ করবে। প্রতিটি ডকুমেন্ট একটি নির্দিষ্ট কর্মীর সাথে সম্পর্কিত থাকবে।

Field NameData TypeDescription
document_idINT (PK)প্রতিটি ডকুমেন্টের জন্য ইউনিক আইডি
employee_idINT (FK)কর্মীর আইডি (যার জন্য ডকুমেন্ট প্রযোজ্য)
category_idINT (FK)ডকুমেন্ট ক্যাটাগরি আইডি
document_urlTEXTডকুমেন্টের অবস্থান (URL বা স্টোরেজ পাথ)
upload_dateDATEডকুমেন্ট আপলোডের তারিখ
expiry_dateDATEডকুমেন্টের মেয়াদ উত্তীর্ণের তারিখ
statusENUMডকুমেন্টের অবস্থা (Active, Expired, Pending)
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: employee_id employees টেবিলের সাথে এবং category_id document_categories টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্ট নির্দিষ্ট কর্মী এবং ডকুমেন্ট ক্যাটাগরির সাথে সম্পর্কিত।


স্টেপ ৪: Document Access Control

4. document_access_control টেবিল:
এই টেবিলটি নির্দিষ্ট ডকুমেন্টের জন্য অনুমোদিত ব্যক্তিদের তথ্য সংরক্ষণ করবে। এর মাধ্যমে কোম্পানির নীতিমালা অনুযায়ী নির্দিষ্ট ব্যক্তিদের ডকুমেন্টে অ্যাক্সেস প্রদান করা হবে।

Field NameData TypeDescription
access_idINT (PK)অ্যাক্সেস নিয়ন্ত্রণের জন্য ইউনিক আইডি
document_idINT (FK)ডকুমেন্ট আইডি (employee_documents থেকে)
approver_idINT (FK)অনুমোদকের আইডি
access_levelENUMঅ্যাক্সেসের স্তর (View, Edit, Download)
granted_onTIMESTAMPঅ্যাক্সেস প্রদানের তারিখ
expiry_onDATEঅ্যাক্সেস মেয়াদ উত্তীর্ণের তারিখ
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: document_id employee_documents এবং approver_id employees টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের অ্যাক্সেস নির্দিষ্ট কর্মীর জন্য অনুমোদিত।


স্টেপ ৫: Document Revision Management

5. document_revisions টেবিল:
প্রতিটি ডকুমেন্টের বিভিন্ন সংস্করণের তথ্য সংরক্ষণ করবে। প্রতিবার কোনো ডকুমেন্ট আপডেট করা হলে একটি নতুন সংস্করণ তৈরি হবে।

Field NameData TypeDescription
revision_idINT (PK)প্রতিটি রিভিশনের জন্য ইউনিক আইডি
document_idINT (FK)ডকুমেন্ট আইডি (employee_documents থেকে)
revision_numberINTরিভিশন নম্বর
revision_dateDATEরিভিশনের তারিখ
updated_byINT (FK)যে কর্মী দ্বারা ডকুমেন্টটি আপডেট হয়েছে
revision_urlTEXTরিভিশনের ডকুমেন্ট পাথ বা URL
remarksTEXTরিভিশন সম্পর্কিত মন্তব্য
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: document_id employee_documents টেবিলের সাথে এবং updated_by employees টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের সংস্করণ নির্দিষ্ট কর্মীর সাথে সম্পর্কিত।


স্টেপ ৬: Document Expiry Notification

6. document_expiry_notifications টেবিল:
এই টেবিলটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে নোটিফিকেশন সংরক্ষণ করবে। এর মাধ্যমে কর্মীদের মেয়াদ উত্তীর্ণ হওয়ার আগে ডকুমেন্ট নবায়নের জন্য সতর্ক করা হবে।

Field NameData TypeDescription
notification_idINT (PK)নোটিফিকেশনের জন্য ইউনিক আইডি
document_idINT (FK)ডকুমেন্ট আইডি (employee_documents থেকে)
notification_dateDATEনোটিফিকেশন পাঠানোর তারিখ
messageTEXTনোটিফিকেশনের বার্তা
sent_toINT (FK)প্রাপক কর্মীর আইডি
created_atTIMESTAMPতৈরি করার তারিখ
updated_atTIMESTAMPআপডেট করার তারিখ

রিলেশন: document_id employee_documents এবং sent_to employees টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে সঠিক প্রাপকদের নোটিফিকেশন পাঠানো হয়েছে।


Document Management Module সম্পর্কের সারাংশ

  1. document_types টেবিলটি বিভিন্ন ডকুমেন্টের ধরন সংরক্ষণ করবে, এবং প্রতিটি কোম্পানি নির্দিষ্ট ধরণের ডকুমেন্ট ব্যবহারের জন্য company_id ফিল্ডের মাধ্যমে পৃথক করা যাবে।
  2. document_categories টেবিলটি প্রতিটি document_type এর বিভিন্ন ক্যাটাগরি সংরক্ষণ করবে, যা document_type_id এর মাধ্যমে সম্পর্কিত থাকবে।
  3. employee_documents টেবিলটি প্রতিটি কর্মীর ডকুমেন্ট সংরক্ষণ করবে, এবং employee_id এবং category_id ফিল্ডের মাধ্যমে কর্মী এবং ডকুমেন্ট ক্যাটাগরির সাথে সম্পর্কিত থাকবে।
  4. document_access_control টেবিলটি নির্দিষ্ট ডকুমেন্টের অ্যাক্সেস নিয়ন্ত্রণ করবে, যা document_id এবং approver_id ফিল্ডের মাধ্যমে ডকুমেন্ট এবং অনুমোদকের সাথে সংযুক্ত থাকবে।
  5. document_revisions টেবিলটি প্রতিটি ডকুমেন্টের বিভিন্ন সংস্করণ সংরক্ষণ করবে, যা document_id এর মাধ্যমে ডকুমেন্টের সাথে সম্পর্কিত এবং updated_by ফিল্ডের মাধ্যমে সংশ্লিষ্ট কর্মীর সাথে সংযুক্ত থাকবে।
  6. document_expiry_notifications টেবিলটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে সতর্কতা নোটিফিকেশন সংরক্ষণ করবে, যা document_id এবং sent_to ফিল্ডের মাধ্যমে ডকুমেন্ট এবং প্রাপকের সাথে সম্পর্কিত থাকবে।

নিচে “ABC Garments Ltd.” কোম্পানির জন্য Document Management মডিউল কিভাবে কাজ করবে, তার একটি বিস্তারিত উদাহরণ দেয়া হলো। এখানে প্রতিটি টেবিলের ব্যবহার, প্রতিটি ফিল্ডের উদ্দেশ্য এবং কিভাবে একটি প্রকৃত প্রতিষ্ঠানে ডকুমেন্ট ম্যানেজমেন্ট সিস্টেম বাস্তবায়ন করা হয় তা বর্ণনা করা হয়েছে।

উদাহরণ: ABC Garments Ltd. এর Document Management

ধরা যাক, ABC Garments Ltd. একটি বড় গার্মেন্টস কোম্পানি যেখানে বিভিন্ন কর্মী, ডিপার্টমেন্ট এবং পদবী রয়েছে। এখানে Document Management System ব্যবহার করা হচ্ছে, যা কর্মীদের গুরুত্বপূর্ণ ডকুমেন্ট, অনুমোদন এবং অ্যাক্সেস নিয়ন্ত্রণের প্রক্রিয়াগুলো সহজ ও সুসংহত করবে।

প্রতিটি স্টেপ ব্যাখ্যা


স্টেপ ১: Document Types Creation (ডকুমেন্টের ধরন তৈরি)

প্রথমেই কোম্পানিটি বিভিন্ন ধরনের ডকুমেন্ট তৈরি করবে যেগুলো কর্মীদের কাছ থেকে সংগ্রহ করা হবে।

  • উদাহরণস্বরূপ, কোম্পানির ডকুমেন্টের ধরন হতে পারে:
    • ID Proof: পরিচয় প্রমাণ
    • Address Proof: ঠিকানা প্রমাণ
    • Employment Contract: নিয়োগ চুক্তি
document_type_idcompany_iddocument_type_namedescriptioncreated_atupdated_at
11ID Proofপরিচয় প্রমাণ ডকুমেন্ট2023-01-01 10:00:002023-01-01 10:00:00
21Address Proofঠিকানা প্রমাণ ডকুমেন্ট2023-01-01 10:00:002023-01-01 10:00:00
31Employment Contractনিয়োগ চুক্তি ডকুমেন্ট2023-01-01 10:00:002023-01-01 10:00:00

বিঃদ্রঃ company_id দ্বারা প্রতিটি ডকুমেন্টের ধরন নির্দিষ্ট কোম্পানির জন্য ব্যবহারযোগ্য থাকবে।


স্টেপ ২: Document Categories Creation (ডকুমেন্ট ক্যাটাগরি তৈরি)

ডকুমেন্টের ধরন তৈরি হওয়ার পরে, প্রতিটি ধরনের জন্য বিভিন্ন ক্যাটাগরি তৈরি করা হবে। এতে কর্মীদের থেকে ডকুমেন্ট সংগ্রহ করা আরও সুনির্দিষ্ট হবে।

  • উদাহরণস্বরূপ, ID Proof ডকুমেন্টের জন্য ক্যাটাগরি:
    • National ID
    • Passport
    • Driving License
category_iddocument_type_idcategory_namedescriptioncreated_atupdated_at
11National IDজাতীয় পরিচয়পত্র2023-01-01 10:10:002023-01-01 10:10:00
21Passportপাসপোর্ট2023-01-01 10:10:002023-01-01 10:10:00
31Driving Licenseড্রাইভিং লাইসেন্স2023-01-01 10:10:002023-01-01 10:10:00
42Utility Billবিদ্যুৎ বিল2023-01-01 10:10:002023-01-01 10:10:00
52Rental Agreementভাড়ার চুক্তিপত্র2023-01-01 10:10:002023-01-01 10:10:00

বিঃদ্রঃ document_type_id নিশ্চিত করবে যে প্রতিটি ক্যাটাগরি নির্দিষ্ট ডকুমেন্টের ধরন অনুযায়ী ব্যবহৃত হচ্ছে।


স্টেপ ৩: Employee Document Storage (কর্মীদের ডকুমেন্ট সংরক্ষণ)

ABC Garments Ltd. তাদের কর্মীদের ডকুমেন্ট সংরক্ষণ করবে। কর্মীদের ডকুমেন্ট জমা দিলে তা employee_documents টেবিলে সংরক্ষিত হবে।

ধরুন, কর্মী মোঃ আরিফ (Employee ID: 101) তাঁর National ID এবং নিয়োগ চুক্তি জমা দিয়েছেন।

document_idemployee_idcategory_iddocument_urlupload_dateexpiry_datestatuscreated_atupdated_at
11011/docs/nid_101.pdf2023-02-012030-02-01Active2023-02-01 10:00:002023-02-01 10:00:00
21013/docs/contract_101.pdf2023-02-01NULLActive2023-02-01 10:00:002023-02-01 10:00:00

বিঃদ্রঃ category_id দ্বারা ডকুমেন্টটি সুনির্দিষ্ট ক্যাটাগরিতে রাখা হয়েছে এবং document_url দ্বারা ডকুমেন্টের অবস্থান নির্ধারণ করা হয়েছে।


স্টেপ ৪: Document Access Control (ডকুমেন্ট অ্যাক্সেস নিয়ন্ত্রণ)

প্রতিটি ডকুমেন্টের জন্য নির্দিষ্ট কর্মীদের অনুমোদন দেওয়া যেতে পারে। ধরুন, মোঃ আরিফের National ID ডকুমেন্টের অ্যাক্সেস তার Department Head এবং HR Manager কে দেওয়া হয়েছে।

access_iddocument_idapprover_idaccess_levelgranted_onexpiry_oncreated_atupdated_at
11201View2023-02-022025-02-012023-02-02 10:00:002023-02-02 10:00:00
21202View, Edit2023-02-022025-02-012023-02-02 10:00:002023-02-02 10:00:00

বিঃদ্রঃ access_level এর মাধ্যমে নিশ্চিত হবে কোন কর্মী কি ধরণের অ্যাক্সেস (যেমন, View, Edit) পাবেন।


স্টেপ ৫: Document Revision Management (ডকুমেন্টের সংস্করণ ব্যবস্থাপনা)

প্রতিবার ডকুমেন্ট আপডেট করা হলে নতুন একটি রিভিশন তৈরি হবে। ধরুন, মোঃ আরিফ তাঁর National ID ডকুমেন্ট আপডেট করেছেন, ফলে একটি নতুন রিভিশন তৈরি হয়েছে।

revision_iddocument_idrevision_numberrevision_dateupdated_byrevision_urlremarkscreated_atupdated_at
1112023-02-01101/docs/nid_101_v1.pdfOriginal version2023-02-01 10:00:002023-02-01 10:00:00
2122024-02-01101/docs/nid_101_v2.pdfUpdated address2024-02-01 10:00:002024-02-01 10:00:00

বিঃদ্রঃ revision_number এবং revision_url এর মাধ্যমে ডকুমেন্টের নতুন সংস্করণটি সুনির্দিষ্ট করা হয়েছে।


স্টেপ ৬: Document Expiry Notification (ডকুমেন্টের মেয়াদ উত্তীর্ণের নোটিফিকেশন)

ডকুমেন্টের মেয়াদ উত্তীর্ণ হওয়ার আগে কর্মীকে সতর্ক করার জন্য নোটিফিকেশন পাঠানো হবে। ধরুন, মোঃ আরিফের National ID ডকুমেন্টের মেয়াদ ২০৩০ সালে শেষ হবে, তাই ২৯ দিন আগে নোটিফিকেশন পাঠানো হয়েছে।

notification_iddocument_idnotification_datemessagesent_tocreated_atupdated_at
112029-12-02Your National ID document will expire soon.1012029-12-02 10:00:002029-12-02 10:00:00

বিঃদ্রঃ notification_date এবং message এর মাধ্যমে কর্মীকে আগাম সতর্ক করা হয়েছে।


Document Management Module Summary

  1. document_types টেবিলটি বিভিন্ন ডকুমেন্টের ধরন সংরক্ষণ করবে, যা প্রতিটি কোম্পানির জন্য পৃথক থাকবে।
  2. document_categories টেবিলটি প্রতিটি ডকুমেন্টের ধরনের জন্য আলাদা আলাদা ক্যাটাগরি তৈরি করে। যেমন, ID Proof এর জন্য National ID, Passport ইত্যাদি।
  3. employee_documents টেবিলটি কর্মীদের ডকুমেন্ট সংরক্ষণ করবে, যেখানে প্রতিটি ডকুমেন্ট নির্দিষ্ট কর্মী এবং ক্যাটাগরির সাথে সম্পর্কিত থাকবে।
  4. document_access_control টেবিলটি ডকুমেন্ট অ্যাক্সেস নিয়ন্ত্রণ করবে, যাতে নির্দিষ্ট কর্মী বা পদে থাকা ব্যক্তিরা অ্যাক্সেস পান।
  5. document_revisions টেবিলটি প্রতিটি ডকুমেন্টের সংস্করণ সংরক্ষণ করবে। এটি প্রতিবার ডকুমেন্ট আপডেট হওয়ার পর নতুন সংস্করণ তৈরি করবে।
  6. document_expiry_notifications টেবিলটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে সতর্ক নোটিফিকেশন পাঠাবে।

সারসংক্ষেপ

এই উন্নত Document Management Database Design মাল্টি-কোম্পানি ভিত্তিক এবং কোম্পানি নির্দিষ্ট ডকুমেন্ট ম্যানেজমেন্ট সিস্টেমের জন্য একটি আদর্শ উদাহরণ। এতে ডকুমেন্ট টাইপ ও ক্যাটাগরি, অ্যাক্সেস নিয়ন্ত্রণ, সংস্করণ ব্যবস্থাপনা, এবং মেয়াদ উত্তীর্ণ নোটিফিকেশন সহ সমস্ত গুরুত্বপূর্ণ ফিচার অন্তর্ভুক্ত করা হয়েছে।

How can we help?