Office / HR / Attendance

بررسی جداول:


offices

جدول دفاتر و نمایندگی‌ها

مقدمه

این جدول هسته اطلاعاتی دفاتر، نمایندگی‌ها و موجودیت‌های عملیاتی سیستم را تشکیل می‌دهد. هر رکورد می‌تواند یک شعبه، نماینده فروش، کارگزار یا دفتر مرکزی باشد و علاوه بر مشخصات تماس و موقعیت جغرافیایی، تنظیمات برند، دامنه، محدودیت‌های مالی و تنظیمات ظاهری را نیز در خود نگه می‌دارد.

ساختار جدول

ستون نوع داده توضیحات
id SMALLINT UNSIGNED شناسه یکتا دفتر یا نمایندگی
type ENUM('white_label','agent','branch','broker') نوع دفتر در ساختار سازمانی
title_fa VARCHAR(255) عنوان فارسی دفتر
title_en VARCHAR(255) عنوان انگلیسی دفتر
brand_fa VARCHAR(255) نام فارسی برند
brand_en VARCHAR(255) نام انگلیسی برند
leader BIGINT شناسه مدیر یا مسئول دفتر
phone VARCHAR(255) شماره تماس ثابت
mobile VARCHAR(255) شماره موبایل
support VARCHAR(255) شماره یا کانال پشتیبانی
accounting_mobile VARCHAR(255) شماره تماس امور مالی
email VARCHAR(255) پست الکترونیکی رسمی دفتر
site VARCHAR(255) وب‌سایت رسمی
whatsapp VARCHAR(255) شماره یا لینک واتساپ
country SMALLINT UNSIGNED شناسه کشور
state INT شناسه استان
city INT UNSIGNED شناسه شهر
address VARCHAR(255) آدرس فارسی
address_en VARCHAR(255) آدرس انگلیسی
address_ar VARCHAR(255) آدرس عربی
postal_code VARCHAR(255) کد پستی
location VARCHAR(255) مختصات یا لینک موقعیت مکانی
logo VARCHAR(255) لوگوی اصلی
paper_logo VARCHAR(255) لوگو مخصوص اسناد
favicon VARCHAR(255) آیکن وب‌سایت
base_color VARCHAR(255) رنگ پایه برند
theme VARCHAR(255) قالب ظاهری
style VARCHAR(255) استایل سفارشی
additional LONGTEXT اطلاعات تکمیلی به‌صورت ساختاریافته
description LONGTEXT توضیحات کامل دفتر
social_media LONGTEXT اطلاعات شبکه‌های اجتماعی
login_text LONGTEXT متن نمایشی صفحه ورود
domain VARCHAR(255) دامنه اصلی دفتر
b2c_domains VARCHAR(255) دامنه‌های فروش مستقیم
short_domain VARCHAR(255) دامنه کوتاه
support_online LONGTEXT تنظیمات پشتیبانی آنلاین
ip LONGTEXT لیست IPهای ثبت‌شده
services LONGTEXT سرویس‌های فعال برای دفتر
expiration DATETIME تاریخ پایان اعتبار دفتر
period ENUM('5years','3years','2years','annual','monthly') دوره قرارداد یا اعتبار
credit_limit BIGINT سقف اعتبار مالی
base_online INT مبنای فروش آنلاین
footer_announcements LONGTEXT اعلان‌ها و پیام‌های پایین سایت
status INT وضعیت فعال یا غیرفعال بودن
created_at TIMESTAMP زمان ایجاد رکورد
updated_at TIMESTAMP زمان آخرین بروزرسانی

نتیجه‌گیری

جدول دفاتر، یکی از ستون‌های اصلی معماری سیستم است که به‌صورت همزمان اطلاعات سازمانی، هویتی، مالی، فنی و نمایشی را در خود نگه می‌دارد. این جدول نقش کلیدی در اتصال ماژول‌های کاربران، همکاران، احراز هویت، مالی و برندینگ ایفا می‌کند و در نهایی به‌عنوان یک نود مرکزی در نظر گرفته خواهد شد.

مستند پایگاه داده – جدول دفاتر و نمایندگی‌ها

office_departments

جدول واحدها و جایگاه‌های سازمانی

مقدمه

این جدول برای تعریف ساختار داخلی دفاتر و نمایندگی‌ها استفاده می‌شود. هر رکورد می‌تواند یک واحد سازمانی (گروه) یا یک جایگاه شغلی (سمت) را در چارچوب یک دفتر مشخص تعریف کند. این ساختار پایه ارتباط بین دفاتر و همکاران سیستم را فراهم می‌سازد.

ساختار جدول

ستون نوع داده توضیحات
id BIGINT شناسه یکتای واحد یا جایگاه سازمانی
branch SMALLINT UNSIGNED شناسه دفتر یا نمایندگی مرتبط
type ENUM('group','position') نوع ساختار: واحد سازمانی یا جایگاه شغلی
slug VARCHAR(255) نام یکتا و قابل استفاده در آدرس‌ها یا شناسایی سیستمی
title VARCHAR(255) عنوان نمایشی واحد یا جایگاه
managers LONGTEXT فهرست مدیران یا مسئولان مرتبط با این واحد
request_confirmation INT الزام تأیید درخواست‌ها از سوی این واحد
status INT وضعیت فعال یا غیرفعال بودن، پیش‌فرض ۱

نتیجه‌گیری

جدول واحدها و جایگاه‌های سازمانی، نقش مهمی در مدل‌سازی چارت سازمانی دفاتر ایفا می‌کند و مبنای تخصیص نقش‌ها، مسئولیت‌ها و جریان تأیید درخواست‌ها در سیستم است. این جدول در دیاگرم دنهایی، به‌عنوان پل ارتباطی میان دفاتر و منابع انسانی در نظر گرفته می‌شود.

مستند پایگاه داده – جدول واحدها و جایگاه‌های سازمانی

office_locations

جدول موقعیت‌های مکانی دفاتر

مقدمه

این جدول برای ثبت مختصات جغرافیایی دفاتر و نمایندگی‌ها استفاده می‌شود. اطلاعات این جدول معمولاً جهت نمایش روی نقشه، مسیریابی، گزارش‌گیری مکانی و تحلیل پراکندگی جغرافیایی دفاتر به‌کار می‌رود و به‌صورت مستقیم به ساختار دفاتر متصل است.

ساختار جدول

ستون نوع داده توضیحات
id INT شناسه یکتای رکورد موقعیت مکانی
branch SMALLINT UNSIGNED شناسه دفتر متصل به آفیس
lat DOUBLE عرض جغرافیایی موقعیت دفتر
lon DOUBLE طول جغرافیایی موقعیت دفتر
status INT وضعیت فعال یا غیرفعال بودن موقعیت، پیش‌فرض ۱

نتیجه‌گیری

جدول موقعیت‌های مکانی دفاتر نقش تکمیلی اما مهمی در معماری سیستم دارد و امکان جداسازی اطلاعات مکانی از داده‌های هویتی دفتر را فراهم می‌کند. این رویکرد باعث انعطاف‌پذیری بیشتر، امکان ثبت چند موقعیت برای یک دفتر و توسعه آسان قابلیت‌های نقشه‌محور در آینده می‌شود.

مستند پایگاه داده – جدول موقعیت‌های مکانی دفاتر

office_config

جدول تنظیمات دفاتر

مقدمه

این جدول برای نگهداری تنظیمات قابل تغییر مرتبط با هر دفتر یا نمایندگی استفاده می‌شود. ساختار کلید-مقدار این جدول اجازه می‌دهد بدون تغییر ساختار پایگاه داده، رفتار سیستم، رابط کاربری یا محدودیت‌های عملیاتی دفاتر به‌صورت پویا کنترل شود.

ساختار جدول

ستون نوع داده توضیحات
id BIGINT شناسه یکتای تنظیم
office BIGINT شناسه دفتر یا نمایندگی مرتبط با تنظیم
key VARCHAR(255) کلید شناسایی تنظیم (نام تنظیم)
value LONGTEXT مقدار تنظیم؛ قابل ذخیره به صورت رشته، عدد یا داده ساختاریافته
updated_at DATETIME زمان آخرین به‌روزرسانی تنظیم

نتیجه‌گیری

جدول تنظیمات دفاتر یکی از اجزای کلیدی انعطاف‌پذیری سیستم محسوب می‌شود و امکان پیاده‌سازی تنظیمات اختصاصی برای هر دفتر را فراهم می‌کند. این طراحی کمک می‌کند بسیاری از تغییرات رفتاری در سیستم، بدون نیاز به توسعه مجدد یا مهاجرت دیتابیس انجام شوند.

مستند پایگاه داده – جدول تنظیمات دفاتر

attendance_face_encoding

جدول کدگذاری چهره حضور و غیاب

مقدمه

این جدول برای ذخیره اطلاعات کدگذاری‌شده چهره اپراتورها در سیستم حضور و غیاب مبتنی بر تشخیص چهره استفاده می‌شود. داده‌های این جدول مبنای مقایسه الگوریتمی تصاویر ورودی با چهره‌های ثبت‌شده هستند.

ساختار جدول

ستون نوع داده توضیحات
id BIGINT شناسه یکتای رکورد کدگذاری چهره
operator INT UNSIGNED شناسه اپراتور مرتبط با این کدگذاری چهره
base_image VARCHAR(255) مسیر یا نام فایل تصویر مرجع چهره اپراتور
status INT وضعیت فعال یا غیرفعال بودن رکورد کدگذاری چهره
e_1 FLOAT مولفه اول بردار ویژگی چهره
e_2 FLOAT مولفه دوم بردار ویژگی چهره
e_3 FLOAT مولفه سوم بردار ویژگی چهره
 در ادامه ستون های جدول ، هر ستون باقیمانده متریک های صورت شخص را در بردارد که سبب شناسایی چهره در موقعیت های گوناگون خواهد شد تعداد متریک ها 128 عدد است که هر کدام انها یگ ستون از جدول را به خود اختصاص میدهند.

نتیجه‌گیری

جدول کدگذاری چهره حضور و غیاب یکی از اجزای حساس و امنیتی سیستم محسوب می‌شود و داده‌های آن مستقیماً در فرآیند تطبیق چهره و تشخیص هویت اپراتورها استفاده می‌گردد. طراحی این جدول به‌گونه‌ای است که امکان توسعه الگوریتم‌های تشخیص چهره و افزایش دقت تطبیق را فراهم کند.

مستند پایگاه داده – جدول کدگذاری چهره حضور و غیاب

rollcalls

جدول ثبت تردد

مقدمه

این جدول برای ثبت رویدادهای حضور و غیاب، ورود، مأموریت و مرخصی اپراتورها استفاده می‌شود. هر رکورد معرف یک رویداد زمانی مشخص بوده و اطلاعات آن می‌تواند از روش‌های مختلف (دستی، موقعیت مکانی، تشخیص چهره یا ترکیبی) ثبت شده باشد.

ساختار جدول

ستون نوع داده توضیحات
id BIGINT UNSIGNED شناسه یکتای رکورد ثبت تردد
operator INT UNSIGNED  شناسه اپراتور مرتبط با این تردد متصل به جدول اپراتور ها 
personnel_id VARCHAR(255) شناسه کاربر در دستگاه یا سامانه ثبت‌کننده
office INT شناسه دفتر
gateway ENUM('manual','location','face','combined','device') روش یا درگاه ثبت تردد
type INT نوع تردد:
1 = ورود
2 = مأموریت
3 = مرخصی
date VARCHAR(8) تاریخ ثبت تردد (فرمت فشرده)
time VARCHAR(4) ساعت ثبت تردد (فرمت فشرده)
status INT وضعیت فعال یا معتبر بودن رکورد
updated_at DATETIME زمان آخرین ویرایش رکورد
updated_by BIGINT شناسه کاربری که آخرین ویرایش را انجام داده است
updated_note VARCHAR(255) یادداشت مربوط به ویرایش رکورد
description LONGTEXT توضیحات تکمیلی درباره رویداد تردد

نتیجه‌گیری

جدول ثبت تردد، هسته عملیاتی سیستم حضور و غیاب محسوب می‌شود و تمامی گزارش‌ها، محاسبات کارکرد و کنترل‌های مدیریتی بر پایه داده‌های این جدول انجام می‌گیرد. طراحی آن به‌گونه‌ای است که از چندین روش ثبت و سناریوهای متنوع پشتیبانی کند.

مستند پایگاه داده – جدول Roll Calls

rollcall_licenses

جدول مجوزها و مرخصی‌های حضور 

مقدمه

این جدول برای مدیریت انواع مجوزها، مرخصی‌ها و تعلیق‌های مرتبط با حضور و غیاب اپراتورها استفاده می‌شود. هر رکورد نمایانگر یک درخواست یا مجوز تأییدشده است که می‌تواند باعث تغییر در منطق ثبت تردد و محاسبه کارکرد اپراتور گردد.

ساختار جدول

ستون نوع داده توضیحات
id BIGINT UNSIGNED شناسه یکتای رکورد مجوز یا مرخصی
branch SMALLINT UNSIGNED شناسه دفتر
operator INT UNSIGNED شناسه اپراتور مرتبط با این مجوز متصل به اپراتور ها
licenses_type INT نوع مجوز:
1 = استحقاقی
2 = استعلاجی
3 = تعلیق
4 = بدون حقوق
time_type INT نوع بازه زمانی:
1 = روز
2 = ساعت
start_date INT تاریخ شروع مجوز
start_time VARCHAR(5) ساعت شروع مجوز
end_date INT تاریخ پایان مجوز
end_time VARCHAR(5) ساعت پایان مجوز
agreement INT توافق یا تأیید مقدار درخواست‌شده
personnel_id INT شناسه پرسنلی ثبت‌شده در سیستم یا دستگاه
substitute_by BIGINT شناسه فرد جایگزین در مدت مجوز
substitute_at DATETIME زمان تعیین فرد جایگزین
substitute_note VARCHAR(255) یادداشت مربوط به جایگزینی
confirm_by BIGINT شناسه تأییدکننده اولیه
confirm_note VARCHAR(255) یادداشت تأیید اولیه
final_approval_by BIGINT شناسه تأییدکننده نهایی
final_approval_at DATETIME زمان تأیید نهایی
final_approval_note VARCHAR(255) یادداشت تأیید نهایی
details LONGTEXT توضیحات تکمیلی درباره مجوز یا مرخصی
status INT وضعیت فعال یا معتبر بودن رکورد
confirm_at DATETIME زمان تأیید اولیه
created_at TIMESTAMP زمان ایجاد رکورد
updated_at TIMESTAMP زمان آخرین به‌روزرسانی رکورد

نتیجه‌گیری

جدول مجوزها و مرخصی‌های حضور نقش کلیدی در کنترل منطق تردد، محاسبه کارکرد و تصمیم‌گیری‌های مدیریتی دارد. طراحی چندمرحله‌ای تأیید و امکان تعریف جایگزین، این جدول را به یک جزء فرآیندی بالغ در سیستم حضور و غیاب تبدیل کرده است.

مستند پایگاه داده – جدول Rollcall Licenses

shift_works

جدول شیفت‌های کاری

مقدمه

جدول shift_works برای تعریف و نگهداری اطلاعات مربوط به الگوهای شیفت کاری استفاده می‌شود. هر رکورد بیانگر یک نوع شیفت مشخص با ویژگی‌هایی مانند ساعت شروع و پایان، تاخیر مجاز، مرخصی ماهانه و مجوزهای ویژه کاری است.

ساختار جدول

ستون نوع داده توضیحات
id INT UNSIGNED شناسه یکتای شیفت کاری
branch SMALLINT UNSIGNED شناسه دفتر
title VARCHAR(255) عنوان شیفت (مثلاً: صبح، عصر، شب)
login LONGTEXT محدوده زمانی مجاز برای ورود (می‌تواند شامل تنظیمات پیشرفته زمان‌بندی باشد)
time_work LONGTEXT بازه کاری مفید - شامل ساعت شروع و پایان اصلی
allowed_delay INT میزان تأخیر مجاز (برحسب دقیقه)
rest VARCHAR(255) بازه استراحت بین کار (Rest period)
vacations VARCHAR(255) مقدار مرخصی ماهانه مجاز برای این شیفت
closure INT مجوز کار در روزهای تعطیل (1 = مجاز / 0 = غیرمجاز)
status INT وضعیت فعال یا غیرفعال بودن شیفت

نتیجه‌گیری

جدول shift_works ستون فقرات مدل کاری سیستم حضور و غیاب است و در محاسبه تطبیق ورودها، مدیریت تاخیر، مرخصی، استراحت و مجوزهای کاری نقش کلیدی دارد.

مستند پایگاه داده – جدول Shift Works

operator_shift_work

جدول تطبیق شیفت کاری با اپراتور 

مقدمه

وظیفه‌ی نگهداری اطلاعات شیفت‌های کاری اختصاص‌داده‌شده به اپراتورها در طول بازه‌های زمانی مشخص (ماه/سال) را برعهده دارد. این جدول ترکیبی از داده‌های ثابت شیفت کاری و داده‌های وابسته به اپراتور است تا امکان برنامه‌ریزی دقیق حضور و محاسبه خودکار عملکرد فراهم شود.

ساختار جدول

ستون نوع داده توضیحات
id BIGINT UNSIGNED AUTO_INCREMENT شناسه یکتای رکورد تخصیص شیفت
branch INT شناسه شعبه یا واحد سازمانی مرتبط با اپراتور
year INT سال تخصیص شیفت
month INT ماه تخصیص شیفت (۱–۱۲)
operator BIGINT شناسه اپراتور مرتبط با این شیفت کاری
login LONGTEXT محدوده یا الگوی زمان ورود (ممکن است ساختار JSON داشته باشد)
time_work LONGTEXT بازه کاری ثابت یا پویا برای این اپراتور - شامل ساعت شروع/پایان
allowed_delay INT میزان تأخیر مجاز در ورود (برحسب دقیقه، پیش‌فرض ۱۵)
rest VARCHAR(255) بازه استراحت کاری (Rest period)
vacations INT میزان مرخصی ماهانه اختصاص‌داده‌شده به اپراتور
closure INT مجوز کار در روزهای تعطیل (1 = مجاز / 0 = غیرمجاز)
status INT وضعیت فعال بودن رکورد تخصیص شیفت

نتیجه‌گیری

 نقطه‌ی اتصال میان اپراتور و برنامه‌ شیفت استاندارد است. این ساختار برای کنترل تطبیق زمانی، اعمال مجوزهای کاری و استثناهای محاسباتی طراحی شده تا بتواند ورودی اصلی الگوریتم‌های حضور و غیاب و محاسبه کارکرد باشد.

مستند پایگاه داده – جدول Operator Shift Work

salary_annual_obligation

جدول محاسبه تعهد سالانه حقوق و روزهای کاری

مقدمه

این جدول به منظور نگهداری اطلاعات مربوط به تعداد روزهای کاری، تعطیلات رسمی، جمعه‌ها و محاسبه تعهد سالانه کارکنان برای هر ماه از سال طراحی شده است. داده‌های آن مبنای تنظیم محاسبات مالی، حقوق ماهانه و گزارش‌های سالانه منابع انسانی خواهد بود.

ساختار جدول

نام ستون نوع داده توضیح
id INT شناسه یکتای هر رکورد در جدول
year INT سال مربوط به رکورد ذخیره‌شده
month INT شماره ماه بر اساس تقویم رسمی کشور (۱ تا ۱۲)
days INT تعداد کل روزهای آن ماه
friday INT تعداد روزهای جمعه در ماه مورد نظر
official_holidays INT تعداد روزهای تعطیل رسمی آن ماه
work_days INT تعداد روزهای کاری واقعی پس از کسر تعطیلات و جمعه‌ها
duty FLOAT ضریب یا شاخص مرتبط با میزان تعهد کاری در آن ماه

نتیجه‌گیری

این جدول نمایانگر وضعیت کلی روزهای کاری، تعطیلات و تعهد مالی ماهانه کارکنان در طول سال است و یکی از مبانی اصلی در محاسبات مالی و اجرای الگوریتم پرداخت حقوق و مزایا به شمار می‌آید. ترکیب آن با سایر جدول‌های مرتبط، دید جامعی از وضعیت عملکرد و تعهد سالانه نیروی انسانی فراهم می‌کند.