View Full Version : ساختار دیتابیس برای سیستم حضور غیاب
reghbali06
شنبه 26 آذر 1390, 11:28 صبح
سلام
مابااستفاده از دستگاه کارتخوان RFID قصدطراحی یه سیستم برای حضور غیاب کارمندان با قابلیت های خاص داریم
خوشبختانه تونستیم با دستگاه ارتباط برقرار کنیم
حال برای سیستم حضور غیاب نیاز به دیتابیس داریم
ما یه table داریم که توش مشخصات کارمندان رو ذخیره می کنیم
برای ذخیره کردن ساعت ورود و خروج نیاز به تیبل داریم
به نظر دوستان این تیبل چه فیلدهایی داشته باشه؟
و اینکه چجوری ورود و خروج رو از هم متمایز کنیم؟
ممنون
mehran_sh_t
شنبه 26 آذر 1390, 18:10 عصر
سلام
می تونید برای ورود و خروج دو فیلد جدا گانه در نظر بگیرید، در واقع جدولتون اینطوری میشه: آیدی کاربر، تاریخ روز، ساعت ورود، ساعت خروج
یوسف زالی
شنبه 26 آذر 1390, 19:26 عصر
سلام.
معمولا راهی برای مجزا کردن ورود از خروج نیست.
تصور کنید یک نفر به اشتباه دو بار پشت سر هم کارت بزنه.
فکر کنم همون سیستم زوج و فرد جواب بده.
دفعه های فرد وروده و دفعه های زوج خروج.
برای جدول هم همون جدول ساده معمولا کفایت می کنه مگه اینکه مرخصی ساعتی - ماموریت - مرخصی استعلاجی و اضطراری و این چیزها رو هم بخواهید ثبت کنید.
soroushp
شنبه 26 آذر 1390, 21:07 عصر
سلام.
معمولا راهی برای مجزا کردن ورود از خروج نیست.
تصور کنید یک نفر به اشتباه دو بار پشت سر هم کارت بزنه.
د.
مشکل دوبار پشت سرهم زدن رو بهتر نیست با برنامه نویسی حل بشه؟
یوسف زالی
شنبه 26 آذر 1390, 21:53 عصر
مثلا چجوری؟
از کجا می دونی واقعا نرفته بیرون؟
مثلا اومده و 2 دقیقه بعدش فهمیده بیرون یه کار مهم داره و باید بره؟
linux
شنبه 26 آذر 1390, 22:02 عصر
سلام
می تونید برای ورود و خروج دو فیلد جدا گانه در نظر بگیرید، در واقع جدولتون اینطوری میشه: آیدی کاربر، تاریخ روز، ساعت ورود، ساعت خروج
کار جالبی نیست.
linux
شنبه 26 آذر 1390, 22:04 عصر
سلام
مابااستفاده از دستگاه کارتخوان RFID قصدطراحی یه سیستم برای حضور غیاب کارمندان با قابلیت های خاص داریم
خوشبختانه تونستیم با دستگاه ارتباط برقرار کنیم
حال برای سیستم حضور غیاب نیاز به دیتابیس داریم
ما یه table داریم که توش مشخصات کارمندان رو ذخیره می کنیم
برای ذخیره کردن ساعت ورود و خروج نیاز به تیبل داریم
به نظر دوستان این تیبل چه فیلدهایی داشته باشه؟
و اینکه چجوری ورود و خروج رو از هم متمایز کنیم؟
ممنون
1- کد پرسنل
2- ساعت و تاریخ
یوسف زالی
شنبه 26 آذر 1390, 22:39 عصر
تو این دو تا پستی که زحمت کشیدید فقط من نفهمیدم چی شد یا ...؟
آقا وقت نداری پست نزن خب! :لبخند:
اونم دوتا دوتا!
راه حل پیشنهادی شما چیه؟ چرا جالب نیست؟ اونی که نوشتید چی بود؟
پیشنهاد شما برای خروج از بن بست ورود خروج چیه؟
soroushp
شنبه 26 آذر 1390, 22:58 عصر
پیشنهاد من اینه که یک جدول درست کنی که : 1 کد اصلی جدول که primary key ، شماره کارمند که کلید خارجی ، ساعت ورود ، ساعت خروج ، نوع ورود/خروج که می تونه عادی باشه و حالت ماموریت که مثلا در این ساعت رفته و در این ساعت برگشته !
نظر شما چیه؟
linux
شنبه 26 آذر 1390, 22:59 عصر
تو این دو تا پستی که زحمت کشیدید فقط من نفهمیدم چی شد یا ...؟
آقا وقت نداری پست نزن خب! :لبخند:
اونم دوتا دوتا!
راه حل پیشنهادی شما چیه؟ چرا جالب نیست؟ اونی که نوشتید چی بود؟
پیشنهاد شما برای خروج از بن بست ورود خروج چیه؟
1- ذخیره اطلاعات ورود و خروح توسط شما در یک رکورد جالب نیست.
2- جدول ورود و خروج به بیشتر از دو فیلد نیاز ندارد
کد پرسنلی
ساعت و تاریخ
همین. از طریق محاسبه می شود کار کرد شخص را حساب کرد.
اگر بر اساس تاریخ ثبت داده ها گروپ بای کنید، برای هر شخص ساعت ورود و خروج مشخص هست، به ترتیب ساعت مرتب کنید ساعت اولی ورود هست و ساعت دومی خروج از کم کردن این دوتا کارکرد بدست می آید.
با فرض ثبت ساعت بصورت 24 ساعته
برای یک شخص به تاریخ امروز
ساده ترین حالت
تاریخ؛ساعت؛کد شخص
امروز؛08:00 ؛1
امروز؛16:00؛1
16-8 =8 ساعت کارکرد
یک خورده پیچیده تر
امروز ؛ 8:00؛1
امروز ؛09:00؛1
امروز؛11:00؛1
امروز؛16:00؛1
اینجا محاسبه به این راحتی نیست، یک جدول باید داشته باشید که مرخصی ها ، ماموریت ها را در آن ثبت کنید.
از طریق اطلاعات جدول مرخصی ها یا ماموریت ها و این جدول کارکرد بدست خواهد آمد هر چند باز خیلی راحت نیست و محاسبات سخت تر و پیچیده تری دارد.
یوسف زالی
یک شنبه 27 آذر 1390, 10:08 صبح
ببینید دوست من با "کار جالبی نیست" موافق نیستم.
در حقیقت باید نوعی برای علت کسر ساعت تعریف بشه که آی دی اون در جدول قرار بگیره.
مثلا:
CID = 10001, EventDate = '90/09/13', EventTime = 09:11 am, EventType = 2
با استفاده از چند تا سلکت ساده هم می شه فهمید کی چقدر کارکرد داشته و چقدر مرخصی و ...
سپس با استفاده از فرمولهایی که معمولا "باز" هستند و می تونند توسط مدیر سیستم اصلاح شوند می شه دقیقا فهمید کارکرد کی چقدر بوده.
پیشنهاد من:
برای هر رویداد یک دکمه ست بشه.
مثلا ورود دکمه یک- خروج دو- مرخصی ساعتی سه...
البته برای سیستم های ساعت زنی مثل اثر انگشت دکمه داره. بقیه رو نمی دونم.
linux
یک شنبه 27 آذر 1390, 12:19 عصر
با کارت rfid می خواهد همین که پرسنل از جلوی دستگاه رد شد رکورد ثبت شود، حالا شما می خواهید چکار کنید؟
soroushp
یک شنبه 27 آذر 1390, 12:42 عصر
ببینید دوست من با "کار جالبی نیست" موافق نیستم.
در حقیقت باید نوعی برای علت کسر ساعت تعریف بشه که آی دی اون در جدول قرار بگیره.
مثلا:
CID = 10001, EventDate = '90/09/13', EventTime = 09:11 am, EventType = 2
.
شما که جدول منو بازگو کردین و مثال زدین؟ می خواستم ببینم همچین جدولی جواب می ده؟ مشکلش چیه؟
یوسف زالی
یک شنبه 27 آذر 1390, 18:58 عصر
عرض کردم.
مشکلی نداره به شرطی که بتونی نوع رویداد رو تشخیص بدی.
شما در جدول نوع رویداد داری؟
اگر داری از کجا می فهمی چه نوعی هست؟
soroushp
یک شنبه 27 آذر 1390, 21:09 عصر
درسته ، من نظرم رو طراحی پایگاه بود ، وگرنه توضیح شما در باره ی دکمه set کامل بود !
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.