আপনার জন্য মাল্টি-কোম্পানি ভিত্তিক এবং প্রতিটি কোম্পানির সাথে সম্পর্কিত একটি উন্নত ডকুমেন্ট ব্যবস্থাপনা (Document Management) মডিউলের ডেটাবেজ ডিজাইন নিচে প্রদান করা হলো। প্রতিটি টেবিলের কাজ, ফিল্ডের বিবরণ, এবং রিলেশন দেয়া হয়েছে যা একটি জটিল ডকুমেন্ট ম্যানেজমেন্ট সিস্টেমের জন্য আদর্শ।
Document Management Database Design with Field Details
স্টেপ ১: Document Types Creation
1. document_types টেবিল:
এই টেবিলটি বিভিন্ন ধরনের ডকুমেন্ট সংরক্ষণ করবে, যেমন পরিচয়পত্র, ঠিকানা প্রমাণ, চুক্তি ইত্যাদি। প্রতিটি কোম্পানির জন্য আলাদাভাবে ব্যবহৃত হতে পারে।
| Field Name | Data Type | Description |
|---|---|---|
| document_type_id | INT (PK) | প্রতিটি ডকুমেন্ট ধরণের জন্য ইউনিক আইডি |
| company_id | INT (FK) | কোম্পানির আইডি (যার সাথে ডকুমেন্ট ধরন সম্পর্কিত) |
| document_type_name | VARCHAR(50) | ডকুমেন্টের ধরন (যেমন, ID Proof, Address Proof) |
| description | TEXT | ডকুমেন্টের বিবরণ |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
company_idcompanies টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের ধরন নির্দিষ্ট কোম্পানির অধীনে রয়েছে।
স্টেপ ২: Document Categories Creation
2. document_categories টেবিল:
এই টেবিলটি প্রতিটি document_type এর জন্য ডকুমেন্ট ক্যাটাগরি সংরক্ষণ করবে। যেমন, পরিচয় প্রমাণের জন্য জাতীয় পরিচয়পত্র, পাসপোর্ট, ড্রাইভিং লাইসেন্স ইত্যাদি।
| Field Name | Data Type | Description |
|---|---|---|
| category_id | INT (PK) | প্রতিটি ডকুমেন্ট ক্যাটাগরির জন্য ইউনিক আইডি |
| document_type_id | INT (FK) | ডকুমেন্টের ধরণ আইডি (document_types থেকে) |
| category_name | VARCHAR(50) | ডকুমেন্ট ক্যাটাগরির নাম |
| description | TEXT | ডকুমেন্ট ক্যাটাগরির বিবরণ |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
document_type_iddocument_types টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ক্যাটাগরি নির্দিষ্ট ডকুমেন্টের ধরণের অন্তর্ভুক্ত।
স্টেপ ৩: Employee Document Storage
3. employee_documents টেবিল:
এই টেবিলটি কর্মীদের ডকুমেন্ট সংরক্ষণ করবে। প্রতিটি ডকুমেন্ট একটি নির্দিষ্ট কর্মীর সাথে সম্পর্কিত থাকবে।
| Field Name | Data Type | Description |
|---|---|---|
| document_id | INT (PK) | প্রতিটি ডকুমেন্টের জন্য ইউনিক আইডি |
| employee_id | INT (FK) | কর্মীর আইডি (যার জন্য ডকুমেন্ট প্রযোজ্য) |
| category_id | INT (FK) | ডকুমেন্ট ক্যাটাগরি আইডি |
| document_url | TEXT | ডকুমেন্টের অবস্থান (URL বা স্টোরেজ পাথ) |
| upload_date | DATE | ডকুমেন্ট আপলোডের তারিখ |
| expiry_date | DATE | ডকুমেন্টের মেয়াদ উত্তীর্ণের তারিখ |
| status | ENUM | ডকুমেন্টের অবস্থা (Active, Expired, Pending) |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
employee_idemployees টেবিলের সাথে এবংcategory_iddocument_categories টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্ট নির্দিষ্ট কর্মী এবং ডকুমেন্ট ক্যাটাগরির সাথে সম্পর্কিত।
স্টেপ ৪: Document Access Control
4. document_access_control টেবিল:
এই টেবিলটি নির্দিষ্ট ডকুমেন্টের জন্য অনুমোদিত ব্যক্তিদের তথ্য সংরক্ষণ করবে। এর মাধ্যমে কোম্পানির নীতিমালা অনুযায়ী নির্দিষ্ট ব্যক্তিদের ডকুমেন্টে অ্যাক্সেস প্রদান করা হবে।
| Field Name | Data Type | Description |
|---|---|---|
| access_id | INT (PK) | অ্যাক্সেস নিয়ন্ত্রণের জন্য ইউনিক আইডি |
| document_id | INT (FK) | ডকুমেন্ট আইডি (employee_documents থেকে) |
| approver_id | INT (FK) | অনুমোদকের আইডি |
| access_level | ENUM | অ্যাক্সেসের স্তর (View, Edit, Download) |
| granted_on | TIMESTAMP | অ্যাক্সেস প্রদানের তারিখ |
| expiry_on | DATE | অ্যাক্সেস মেয়াদ উত্তীর্ণের তারিখ |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
document_idemployee_documents এবংapprover_idemployees টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের অ্যাক্সেস নির্দিষ্ট কর্মীর জন্য অনুমোদিত।
স্টেপ ৫: Document Revision Management
5. document_revisions টেবিল:
প্রতিটি ডকুমেন্টের বিভিন্ন সংস্করণের তথ্য সংরক্ষণ করবে। প্রতিবার কোনো ডকুমেন্ট আপডেট করা হলে একটি নতুন সংস্করণ তৈরি হবে।
| Field Name | Data Type | Description |
|---|---|---|
| revision_id | INT (PK) | প্রতিটি রিভিশনের জন্য ইউনিক আইডি |
| document_id | INT (FK) | ডকুমেন্ট আইডি (employee_documents থেকে) |
| revision_number | INT | রিভিশন নম্বর |
| revision_date | DATE | রিভিশনের তারিখ |
| updated_by | INT (FK) | যে কর্মী দ্বারা ডকুমেন্টটি আপডেট হয়েছে |
| revision_url | TEXT | রিভিশনের ডকুমেন্ট পাথ বা URL |
| remarks | TEXT | রিভিশন সম্পর্কিত মন্তব্য |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
document_idemployee_documents টেবিলের সাথে এবংupdated_byemployees টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের সংস্করণ নির্দিষ্ট কর্মীর সাথে সম্পর্কিত।
স্টেপ ৬: Document Expiry Notification
6. document_expiry_notifications টেবিল:
এই টেবিলটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে নোটিফিকেশন সংরক্ষণ করবে। এর মাধ্যমে কর্মীদের মেয়াদ উত্তীর্ণ হওয়ার আগে ডকুমেন্ট নবায়নের জন্য সতর্ক করা হবে।
| Field Name | Data Type | Description |
|---|---|---|
| notification_id | INT (PK) | নোটিফিকেশনের জন্য ইউনিক আইডি |
| document_id | INT (FK) | ডকুমেন্ট আইডি (employee_documents থেকে) |
| notification_date | DATE | নোটিফিকেশন পাঠানোর তারিখ |
| message | TEXT | নোটিফিকেশনের বার্তা |
| sent_to | INT (FK) | প্রাপক কর্মীর আইডি |
| created_at | TIMESTAMP | তৈরি করার তারিখ |
| updated_at | TIMESTAMP | আপডেট করার তারিখ |
রিলেশন:
document_idemployee_documents এবংsent_toemployees টেবিলের সাথে সংযুক্ত থাকবে, যা নিশ্চিত করবে যে প্রতিটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে সঠিক প্রাপকদের নোটিফিকেশন পাঠানো হয়েছে।
Document Management Module সম্পর্কের সারাংশ
- document_types টেবিলটি বিভিন্ন ডকুমেন্টের ধরন সংরক্ষণ করবে, এবং প্রতিটি কোম্পানি নির্দিষ্ট ধরণের ডকুমেন্ট ব্যবহারের জন্য
company_idফিল্ডের মাধ্যমে পৃথক করা যাবে। - document_categories টেবিলটি প্রতিটি document_type এর বিভিন্ন ক্যাটাগরি সংরক্ষণ করবে, যা
document_type_idএর মাধ্যমে সম্পর্কিত থাকবে। - employee_documents টেবিলটি প্রতিটি কর্মীর ডকুমেন্ট সংরক্ষণ করবে, এবং
employee_idএবংcategory_idফিল্ডের মাধ্যমে কর্মী এবং ডকুমেন্ট ক্যাটাগরির সাথে সম্পর্কিত থাকবে। - document_access_control টেবিলটি নির্দিষ্ট ডকুমেন্টের অ্যাক্সেস নিয়ন্ত্রণ করবে, যা
document_idএবংapprover_idফিল্ডের মাধ্যমে ডকুমেন্ট এবং অনুমোদকের সাথে সংযুক্ত থাকবে। - document_revisions টেবিলটি প্রতিটি ডকুমেন্টের বিভিন্ন সংস্করণ সংরক্ষণ করবে, যা
document_idএর মাধ্যমে ডকুমেন্টের সাথে সম্পর্কিত এবংupdated_byফিল্ডের মাধ্যমে সংশ্লিষ্ট কর্মীর সাথে সংযুক্ত থাকবে। - 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_id | company_id | document_type_name | description | created_at | updated_at |
|---|---|---|---|---|---|
| 1 | 1 | ID Proof | পরিচয় প্রমাণ ডকুমেন্ট | 2023-01-01 10:00:00 | 2023-01-01 10:00:00 |
| 2 | 1 | Address Proof | ঠিকানা প্রমাণ ডকুমেন্ট | 2023-01-01 10:00:00 | 2023-01-01 10:00:00 |
| 3 | 1 | Employment Contract | নিয়োগ চুক্তি ডকুমেন্ট | 2023-01-01 10:00:00 | 2023-01-01 10:00:00 |
বিঃদ্রঃ
company_idদ্বারা প্রতিটি ডকুমেন্টের ধরন নির্দিষ্ট কোম্পানির জন্য ব্যবহারযোগ্য থাকবে।
স্টেপ ২: Document Categories Creation (ডকুমেন্ট ক্যাটাগরি তৈরি)
ডকুমেন্টের ধরন তৈরি হওয়ার পরে, প্রতিটি ধরনের জন্য বিভিন্ন ক্যাটাগরি তৈরি করা হবে। এতে কর্মীদের থেকে ডকুমেন্ট সংগ্রহ করা আরও সুনির্দিষ্ট হবে।
- উদাহরণস্বরূপ, ID Proof ডকুমেন্টের জন্য ক্যাটাগরি:
- National ID
- Passport
- Driving License
| category_id | document_type_id | category_name | description | created_at | updated_at |
|---|---|---|---|---|---|
| 1 | 1 | National ID | জাতীয় পরিচয়পত্র | 2023-01-01 10:10:00 | 2023-01-01 10:10:00 |
| 2 | 1 | Passport | পাসপোর্ট | 2023-01-01 10:10:00 | 2023-01-01 10:10:00 |
| 3 | 1 | Driving License | ড্রাইভিং লাইসেন্স | 2023-01-01 10:10:00 | 2023-01-01 10:10:00 |
| 4 | 2 | Utility Bill | বিদ্যুৎ বিল | 2023-01-01 10:10:00 | 2023-01-01 10:10:00 |
| 5 | 2 | Rental Agreement | ভাড়ার চুক্তিপত্র | 2023-01-01 10:10:00 | 2023-01-01 10:10:00 |
বিঃদ্রঃ
document_type_idনিশ্চিত করবে যে প্রতিটি ক্যাটাগরি নির্দিষ্ট ডকুমেন্টের ধরন অনুযায়ী ব্যবহৃত হচ্ছে।
স্টেপ ৩: Employee Document Storage (কর্মীদের ডকুমেন্ট সংরক্ষণ)
ABC Garments Ltd. তাদের কর্মীদের ডকুমেন্ট সংরক্ষণ করবে। কর্মীদের ডকুমেন্ট জমা দিলে তা employee_documents টেবিলে সংরক্ষিত হবে।
ধরুন, কর্মী মোঃ আরিফ (Employee ID: 101) তাঁর National ID এবং নিয়োগ চুক্তি জমা দিয়েছেন।
| document_id | employee_id | category_id | document_url | upload_date | expiry_date | status | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|
| 1 | 101 | 1 | /docs/nid_101.pdf | 2023-02-01 | 2030-02-01 | Active | 2023-02-01 10:00:00 | 2023-02-01 10:00:00 |
| 2 | 101 | 3 | /docs/contract_101.pdf | 2023-02-01 | NULL | Active | 2023-02-01 10:00:00 | 2023-02-01 10:00:00 |
বিঃদ্রঃ
category_idদ্বারা ডকুমেন্টটি সুনির্দিষ্ট ক্যাটাগরিতে রাখা হয়েছে এবংdocument_urlদ্বারা ডকুমেন্টের অবস্থান নির্ধারণ করা হয়েছে।
স্টেপ ৪: Document Access Control (ডকুমেন্ট অ্যাক্সেস নিয়ন্ত্রণ)
প্রতিটি ডকুমেন্টের জন্য নির্দিষ্ট কর্মীদের অনুমোদন দেওয়া যেতে পারে। ধরুন, মোঃ আরিফের National ID ডকুমেন্টের অ্যাক্সেস তার Department Head এবং HR Manager কে দেওয়া হয়েছে।
| access_id | document_id | approver_id | access_level | granted_on | expiry_on | created_at | updated_at |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 201 | View | 2023-02-02 | 2025-02-01 | 2023-02-02 10:00:00 | 2023-02-02 10:00:00 |
| 2 | 1 | 202 | View, Edit | 2023-02-02 | 2025-02-01 | 2023-02-02 10:00:00 | 2023-02-02 10:00:00 |
বিঃদ্রঃ
access_levelএর মাধ্যমে নিশ্চিত হবে কোন কর্মী কি ধরণের অ্যাক্সেস (যেমন, View, Edit) পাবেন।
স্টেপ ৫: Document Revision Management (ডকুমেন্টের সংস্করণ ব্যবস্থাপনা)
প্রতিবার ডকুমেন্ট আপডেট করা হলে নতুন একটি রিভিশন তৈরি হবে। ধরুন, মোঃ আরিফ তাঁর National ID ডকুমেন্ট আপডেট করেছেন, ফলে একটি নতুন রিভিশন তৈরি হয়েছে।
| revision_id | document_id | revision_number | revision_date | updated_by | revision_url | remarks | created_at | updated_at |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 2023-02-01 | 101 | /docs/nid_101_v1.pdf | Original version | 2023-02-01 10:00:00 | 2023-02-01 10:00:00 |
| 2 | 1 | 2 | 2024-02-01 | 101 | /docs/nid_101_v2.pdf | Updated address | 2024-02-01 10:00:00 | 2024-02-01 10:00:00 |
বিঃদ্রঃ
revision_numberএবংrevision_urlএর মাধ্যমে ডকুমেন্টের নতুন সংস্করণটি সুনির্দিষ্ট করা হয়েছে।
স্টেপ ৬: Document Expiry Notification (ডকুমেন্টের মেয়াদ উত্তীর্ণের নোটিফিকেশন)
ডকুমেন্টের মেয়াদ উত্তীর্ণ হওয়ার আগে কর্মীকে সতর্ক করার জন্য নোটিফিকেশন পাঠানো হবে। ধরুন, মোঃ আরিফের National ID ডকুমেন্টের মেয়াদ ২০৩০ সালে শেষ হবে, তাই ২৯ দিন আগে নোটিফিকেশন পাঠানো হয়েছে।
| notification_id | document_id | notification_date | message | sent_to | created_at | updated_at |
|---|---|---|---|---|---|---|
| 1 | 1 | 2029-12-02 | Your National ID document will expire soon. | 101 | 2029-12-02 10:00:00 | 2029-12-02 10:00:00 |
বিঃদ্রঃ
notification_dateএবংmessageএর মাধ্যমে কর্মীকে আগাম সতর্ক করা হয়েছে।
Document Management Module Summary
- document_types টেবিলটি বিভিন্ন ডকুমেন্টের ধরন সংরক্ষণ করবে, যা প্রতিটি কোম্পানির জন্য পৃথক থাকবে।
- document_categories টেবিলটি প্রতিটি ডকুমেন্টের ধরনের জন্য আলাদা আলাদা ক্যাটাগরি তৈরি করে। যেমন, ID Proof এর জন্য National ID, Passport ইত্যাদি।
- employee_documents টেবিলটি কর্মীদের ডকুমেন্ট সংরক্ষণ করবে, যেখানে প্রতিটি ডকুমেন্ট নির্দিষ্ট কর্মী এবং ক্যাটাগরির সাথে সম্পর্কিত থাকবে।
- document_access_control টেবিলটি ডকুমেন্ট অ্যাক্সেস নিয়ন্ত্রণ করবে, যাতে নির্দিষ্ট কর্মী বা পদে থাকা ব্যক্তিরা অ্যাক্সেস পান।
- document_revisions টেবিলটি প্রতিটি ডকুমেন্টের সংস্করণ সংরক্ষণ করবে। এটি প্রতিবার ডকুমেন্ট আপডেট হওয়ার পর নতুন সংস্করণ তৈরি করবে।
- document_expiry_notifications টেবিলটি ডকুমেন্টের মেয়াদ উত্তীর্ণের আগে সতর্ক নোটিফিকেশন পাঠাবে।
সারসংক্ষেপ
এই উন্নত Document Management Database Design মাল্টি-কোম্পানি ভিত্তিক এবং কোম্পানি নির্দিষ্ট ডকুমেন্ট ম্যানেজমেন্ট সিস্টেমের জন্য একটি আদর্শ উদাহরণ। এতে ডকুমেন্ট টাইপ ও ক্যাটাগরি, অ্যাক্সেস নিয়ন্ত্রণ, সংস্করণ ব্যবস্থাপনা, এবং মেয়াদ উত্তীর্ণ নোটিফিকেশন সহ সমস্ত গুরুত্বপূর্ণ ফিচার অন্তর্ভুক্ত করা হয়েছে।