स्तर:शुरुआती
इतने सारे संगठन कर्मचारी शेड्यूल को संग्रहीत करने की आम समस्या का सामना करते हैं। कोई फर्क नहीं पड़ता कि कौन सी संस्था:एक कंपनी, एक विश्वविद्यालय या बस एक व्यक्ति, कई संस्थाओं को कार्यक्रम देखने के लिए एक आवेदन की आवश्यकता होती है। इसलिए, मैं एक डेटाबेस मॉडल के साथ आने की कोशिश करूंगा और फिर, भविष्य के लेख में, हम एक डेटाबेस में कर्मचारियों के शेड्यूल को स्टोर करने के लिए एक सरल एप्लिकेशन के बारे में बात करेंगे।
वर्तमान में डिजाइन इस प्रकार दिखता है:
मॉडल बहुत सीधा है।
टिप - प्राकृतिक और सरोगेट प्रमुख रणनीतियां
- सरोगेट प्राथमिक कुंजी का उपयोग करें जब भी प्राकृतिक कुंजी में मान संभवतः बदल सकते हैं या जब कोई प्राकृतिक कुंजी बहुत जटिल हो।
- यदि एक प्राकृतिक उम्मीदवार कुंजी में कम संख्या में कॉलम होते हैं (आदर्श रूप से केवल एक) और इसके मान नहीं बदलते हैं - इसे प्राकृतिक प्राथमिक कुंजी के रूप में उपयोग करें
और जानें प्राकृतिक और सरोगेट प्राथमिक कुंजी के बारे में।
employee
तालिका में प्रत्येक कर्मचारी का वर्णन करने वाली बुनियादी विशेषताएं हैं, उदाहरण के लिए:नाम, उपनाम, पता और फोन नंबर। नाम और उपनाम प्रत्येक रिकॉर्ड की विशिष्ट रूप से पहचान नहीं करते हैं (एक ही नाम और उपनाम वाले एक से अधिक व्यक्ति हो सकते हैं), इसलिए एक नया कॉलम पेश किया गया था (id
), जिसे सरोगेट कुंजी . कहा जाता है ।
schedule
तालिका में वे दिन और घंटे होते हैं जब प्रत्येक कर्मचारी काम पर होता है। work_date
कॉलम उस दिन को निर्दिष्ट करता है जब प्रत्येक कर्मचारी काम कर रहा था। start_work_hour
और end_work_hour
कॉलम उस दिन के काम के घंटों की पहचान करते हैं।
आइए मान लें कि हमारे पास पीटर नामक एक कर्मचारी है। वह 4 फरवरी को काम पर था और वह शेड्यूल में अपने प्रारंभ और समाप्ति समय को चिह्नित करता है।
schedule
तालिका इस तरह दिखती है:
id | कर्मचारी_आईडी | कार्य_तिथि | start_work_hour | end_work_hour | is_holiday | is_weekend |
1 | 1 | 10 | 16 | 0 | 0 |
इस तरह की प्रणाली का निर्माण करते समय हम यह जानना चाह सकते हैं कि किसने सबसे अधिक रातें काम कीं या किसने सबसे अधिक सप्ताहांत/छुट्टियों में काम किया। ऐसी जानकारी वाली रिपोर्ट जेनरेट करने के लिए, कॉलम is_holiday
और is_weekend
पेश किए गए थे।
इस दृष्टिकोण का उपयोग करने के लिए आपको छुट्टियों के लिए एक अलग तालिका की आवश्यकता होगी जिसमें कंपनी के लिए छुट्टियों की तिथियां हों। जब कोई कर्मचारी अपने कार्य समय में प्रवेश करता है, तो कॉलम is_holiday
और is_weekend
ट्रिगर का उपयोग करके अद्यतन किया जा सकता है। तारीख और समय डालने के बाद, ट्रिगर यह जांच करेगा कि तारीख छुट्टी है या सप्ताहांत और फ़ील्ड में सही मान डालें।