The best قام بنشر بالامس في 13:34 قام بنشر بالامس في 13:34 السلام عليكم ورحمة الله وبركاته إخوتى وأساتذتى الأفاضل بمشيئة الله أنا بصدد تصميم برنامج لشئون العاملين بجهة عملى ومحتاج لمساعدتكم واقتراحاتكم مرحلة أولى فى المرفق التالى هل يصح وضع البيانات فى جدول واحد علشان عملت 3 جداول Personnel_affairs.rar
Foksh قام بنشر بالامس في 14:12 قام بنشر بالامس في 14:12 وعليكم السلام ورحمة الله وبركاته، بالنسبة لسؤالك حول وضع البيانات في جدول واحد أو توزيعها على عدة جداول ، فمن الأفضل استخدام 3 جداول منفصلة كما فعلت ( هذا بالنسبة لي طبعاً ) ، وذلك للأسباب التالية : 🔹 لماذا لا أفضل وضع البيانات في جدول واحد ؟؟؟ 1️⃣ تجنب تكرار البيانات :- إذا وضعت جميع البيانات في جدول واحد ، فقد تضطر إلى تكرار بيانات الموظف أكثر من مرة عند إضافة مؤهلاته أو تغيير بياناته الوظيفية . 2️⃣ تحسين الأداء وسهولة الاستعلامات :- الجداول الصغيرة تسهّل عمليات البحث والتحديث مقارنةً بجدول واحد ضخم يحتوي على بيانات مكررة . 3️⃣ التوسّع المستقبلي :- تقسيم البيانات يسهل إضافة ميزات جديدة مثل ترقيات الموظفين أو دورات تدريبية دون إعادة تصميم الجدول بالكامل . 🔹 ونقطة مهمة وهي كيف يتم الربط بين الجداول ؟؟؟ لضمان عمل الجداول بشكل صحيح ، يجب استخدام المفاتيح الأساسية (Primary Keys) والمفاتيح الأجنبية (Foreign Keys) كما يلي :- ✅ جدول البيانات الشخصية (Personal_data) :- اجعل rkm_mlf (رقم الملف) هو المفتاح الأساسي (Primary Key) ، لأنه فريد لكل موظف . ✅ جدول البيانات الوظيفية (Functional_data) :- أضف Functional_ID (ترقيم تلقائي) كمفتاح أساسي . استخدم rkm_mlf كمفتاح أجنبي (Foreign Key) لربطه بجدول البيانات الشخصية . ✅ جدول المؤهلات (Qualification_data) :- أضف Qualification_ID (ترقيم تلقائي) كمفتاح أساسي . استخدم rkm_mlf كمفتاح أجنبي (Foreign Key) لربطه بجدول البيانات الشخصية . هذا وقد أكون قد غفلت عن شيء ، فإن كنت قد سهوت فعل الأخوة والأساتذة يساندني ويذكرها 😇 .
The best قام بنشر بالامس في 14:34 الكاتب قام بنشر بالامس في 14:34 19 دقائق مضت, Foksh said: وعليكم السلام ورحمة الله وبركاته، بالنسبة لسؤالك حول وضع البيانات في جدول واحد أو توزيعها على عدة جداول ، فمن الأفضل استخدام 3 جداول منفصلة كما فعلت ( هذا بالنسبة لي طبعاً ) ، وذلك للأسباب التالية : 🔹 لماذا لا أفضل وضع البيانات في جدول واحد ؟؟؟ 1️⃣ تجنب تكرار البيانات :- إذا وضعت جميع البيانات في جدول واحد ، فقد تضطر إلى تكرار بيانات الموظف أكثر من مرة عند إضافة مؤهلاته أو تغيير بياناته الوظيفية . 2️⃣ تحسين الأداء وسهولة الاستعلامات :- الجداول الصغيرة تسهّل عمليات البحث والتحديث مقارنةً بجدول واحد ضخم يحتوي على بيانات مكررة . 3️⃣ التوسّع المستقبلي :- تقسيم البيانات يسهل إضافة ميزات جديدة مثل ترقيات الموظفين أو دورات تدريبية دون إعادة تصميم الجدول بالكامل . 🔹 ونقطة مهمة وهي كيف يتم الربط بين الجداول ؟؟؟ لضمان عمل الجداول بشكل صحيح ، يجب استخدام المفاتيح الأساسية (Primary Keys) والمفاتيح الأجنبية (Foreign Keys) كما يلي :- ✅ جدول البيانات الشخصية (Personal_data) :- اجعل rkm_mlf (رقم الملف) هو المفتاح الأساسي (Primary Key) ، لأنه فريد لكل موظف . ✅ جدول البيانات الوظيفية (Functional_data) :- أضف Functional_ID (ترقيم تلقائي) كمفتاح أساسي . استخدم rkm_mlf كمفتاح أجنبي (Foreign Key) لربطه بجدول البيانات الشخصية . ✅ جدول المؤهلات (Qualification_data) :- أضف Qualification_ID (ترقيم تلقائي) كمفتاح أساسي . استخدم rkm_mlf كمفتاح أجنبي (Foreign Key) لربطه بجدول البيانات الشخصية . هذا وقد أكون قد غفلت عن شيء ، فإن كنت قد سهوت فعل الأخوة والأساتذة يساندني ويذكرها 😇 . هكذا أستاذنا صح وكمان لسة فى جداول خاصة بالإجازات والتدريبات وتدرج الوظائف والجزاءات والعقوبات وغيرها أجهز تلك الجداول بالطريقة السابقة
Foksh قام بنشر بالامس في 14:41 قام بنشر بالامس في 14:41 3 دقائق مضت, The best said: هكذا أستاذنا صح نعم صحيح أخي الكريم .. وبالنسبة للجداول المتبقية ، فيفضل استخدامك لنفس الطريقة السابقة ، وطبعاً سيكون حقل المفتاح الفريد rkm_mlf هو الرابط بين الجداول لذا اربط الجداول كافة بجدول الموظفين لضمان تنظيم البيانات واسترجاعها بسهولة لاحقاً .
ابوخليل قام بنشر بالامس في 15:18 قام بنشر بالامس في 15:18 مشاركة مع اخي العزيز فادي واضافة الى ما افاد به وأجاد بعض الملاحظات البسيطة من واقع تجربة : ملاحظة فنية : - تسميات الحقول .. مثلا rkm_mlf في الجدول الرئيسي يجب ان يختلف في الجداول الأخرى اختلافا طفيفا اما بزيادة حرف او رقم .. وهذا ينطبق على جميع تسميات الحقول بين الجداول السبب في افضلية ايجاد فارق في التسمية هي احيانا تضطر الى ضم هذه الجداول في استعلام واحد .. حينها ستعرف فائدة التفرقة . ملاحظات في التصميم : تنقسم البيانات المتجددة الى نوعين .. 1- نوع يكون اصله في جدول الاسماء .. وما يستجد في جدول منفصل ، مع تحديث القيمة في جدول الاسماء عند كل حركة جديدة .. مثل الرتبة وترقياتها ، والوظيفة وتدرجاتها ، والنقل داخل المحافظة نفسها ( مكان العمل ) ، والمؤهل وتاريخه ونحو ذلك هذه الفكرة ستجد ثمرتها عظيمة مستقبلا عند البحث والتصفيات الجماعية وعمل التقارير .. ستكون سلسة وسريعة .. لان المصدر جدول واحد فقط التفاصيل الأخرى غالبا لن تحتاجها الا في الاستعلام عن موظف محدد بعينه 2- النوع الثاني الاصل يكون في جدول مستقل مثل الإجازات والتدريبات والجزاءات والعقوبات .. ونحو ذلك ------------------------------------- لا ننسى الجداول الخدمية وهي مهمة جدا مثل : جدول المؤهلات ، جدول الوظائف ... الخ وجميع الأشياء التي تتوقع البحث والاستعلام عنها يجب ان يكون لها جداول خدمية خاصة المهم يجب ان تعلم ان اي مشروع 80% منه هو اجادة وضبط الجداول فلا تخرج من الجداول ابدا حتى تتأكد انك استوفيت وأحكمت جميع اطراف مشروعك ناقش واعرض جداولك واستمر في المناقشة والاستفسار حتى تأخذ الضوء الاخضر من اخوانك هنا ..
Foksh قام بنشر بالامس في 15:56 قام بنشر بالامس في 15:56 20 دقائق مضت, ابوخليل said: تنقسم البيانات المتجددة الى نوعين .. هذه ملاحظة تصميمية رائعة جداً . حيث توضح أن البيانات المتغيرة يجب تقسيمها إلى نوعين بناءً على طبيعتها :- 🔹 النوع الأول وهو بيانات متغيرة تحتاج إلى تحديث مستمر في الجدول الأساسي . مثل الرتبة ، الوظيفة ، مكان العمل ، المؤهل ... إلخ . ويتم الاحتفاظ بأحدث قيمة داخل جدول الموظفين الرئيسي ، ويتم تحديثها عند حدوث تغيير . كما يتم تسجيل جميع الحركات السابقة في جدول منفصل ، بحيث يمكن الرجوع إليها عند الحاجة . برأيي هذه النقطة مهمة لأن البحث والتصفية على جدول واحد يكون أسرع وأسهل . أيضاً عند البحث عن بيانات حديثة لكل الموظفين ، لن تحتاج إلى جلب جميع الحركات السابقة ، بل فقط أحدث حالة لكل موظف . ويمكن تطبيق هذه الفكرة على سبيل المثال في الجدول personal_data ، أضافة حقول مثل :- current_rank ( الرتبة الحالية ) ، current_job ( الوظيفة الحالية ) ، current_workplace ( مكان العمل الحالي ) ، latest_qualification ( آخر مؤهل ) . وفي جداول الحركات ( مثل الترقيات والتعديلات ) ، يتم تسجيل جميع الحركات السابقة ، وعند حدوث تغيير جديد يتم تحديث الحقل المناسب في جدول الموظفين الرئيسي . 🔹 النوع الثاني من البيانات وهو بيانات مستقلة بالكامل . مثل الإجازات ، التدريبات ، الجزاءات ، العقوبات ... إلخ ، فهذه البيانات متغيرة لكنها لا تؤثر على المعلومات الأساسية للموظف بشكل مباشر . لكن لكل منها جدول مستقل ويتم ربطه بـ rkm_mlf . أيضاً هذه نقطة مهمة لأن الموظف يمكن أن يكون لديه عدد غير محدود من الإجازات والتدريبات والجزاءات ... إلخ ، وبالتالي لا يُفضل إضافتها إلى الجدول الرئيسي للموظفين . وكما أن الفصل بين البيانات يجعل الاستعلامات أكثر كفاءة ودقة ، حيث يمكنك البحث عن الإجازات دون التأثير على بيانات الموظفين الآخرين . وأيضاً يمكن تطبيق هذه الفكرة على سبيل المثال بحيث يكون لكل نوع بيانات جدول مستقل ، مثل :- Leave_data ( جدول الإجازات ) ، Training_data ( جدول التدريبات ) ، Penalty_data ( جدول الجزاءات ) ، Promotion_data ( جدول الترقيات ) . 💥 أما فيما يخص التسميات الخاصة بحقل الربط بين الجداول وكما أشار أستاذي @ابوخليل ؛ فبدلاً من استخدام rkm_mlf في جميع الجداول ، يمكن تسميته بشكل متمايز كما يلي :- rkm_mlf في جدول personal_data ( جدول الموظفين الرئيسي ) rkm_mlf_func في جدول functional_data rkm_mlf_qual في جدول qualification_data 1
ابوخليل قام بنشر بالامس في 16:02 قام بنشر بالامس في 16:02 2 دقائق مضت, Foksh said: هذه ملاحظة تصميمية رائعة جداً . حيث توضح أن البيانات المتغيرة يجب تقسيمها إلى نوعين بناءً على طبيعتها :- الأروع من ذلك شرحك الوافي الدقيق 1
Foksh قام بنشر بالامس في 16:06 قام بنشر بالامس في 16:06 2 دقائق مضت, ابوخليل said: الأروع من ذلك شرحك الوافي الدقيق جزاكم الله خيراً ، ونفع بكم وبعلمكم .. والحمد لله على ما تعلمناه بفضله ثم من توجيهاتكم في كثير من المواضيع ومتابعتي لخطواتكم
The best قام بنشر بالامس في 18:04 الكاتب قام بنشر بالامس في 18:04 سأحاول فعل ما تفضلتم به وسأعرضها على حضراتكم وبعد ذلك ننظر فيم سيحدث
The best قام بنشر منذ 21 ساعات الكاتب قام بنشر منذ 21 ساعات هل هذا هو المطلوب ؟ Personnel_affairs.rar
saud90 قام بنشر منذ 18 ساعات قام بنشر منذ 18 ساعات في نظري ما فعلته صحيح ولكن بقي كما قال الأستاذ أبو خليل ( لا ننسى الجداول الخدمية وهي مهمة جدا مثل : جدول المؤهلات ، جدول الوظائف ... الخ وجميع الأشياء التي تتوقع البحث والاستعلام عنها يجب ان يكون لها جداول خدمية خاصة) تحتاج جداول غير مرتبطة وبناء على جدول الموظفين تحتاج إلى جدول الديانات جدول الحالة الاجتماعية جدول الحنسية جدول المحافظات أو القرى جدول النوع ( ذكر - أنثى ) اعتقد هذا هو قصدك بالاضافة إلى الجداول المذكورة في كلمة الأستاذ أبو خليل الجداول الغير مرتبطة هي جداول تسهل عملية الادخال بدل الكتابة وتسهل عملية البحث والحصر عن طريق الاستعلام
The best قام بنشر منذ 4 ساعات الكاتب قام بنشر منذ 4 ساعات 13 ساعات مضت, saud90 said: في نظري ما فعلته صحيح ولكن بقي كما قال الأستاذ أبو خليل ( لا ننسى الجداول الخدمية وهي مهمة جدا مثل : جدول المؤهلات ، جدول الوظائف ... الخ وجميع الأشياء التي تتوقع البحث والاستعلام عنها يجب ان يكون لها جداول خدمية خاصة) تحتاج جداول غير مرتبطة وبناء على جدول الموظفين تحتاج إلى جدول الديانات جدول الحالة الاجتماعية جدول الحنسية جدول المحافظات أو القرى جدول النوع ( ذكر - أنثى ) اعتقد هذا هو قصدك بالاضافة إلى الجداول المذكورة في كلمة الأستاذ أبو خليل الجداول الغير مرتبطة هي جداول تسهل عملية الادخال بدل الكتابة وتسهل عملية البحث والحصر عن طريق الاستعلام بيانات النوع والمحافظة وتاريخ الميلاد محتاج استخرجهم من الرقم القومى
Foksh قام بنشر منذ 3 ساعات قام بنشر منذ 3 ساعات 18 ساعات مضت, The best said: هل هذا هو المطلوب ؟ تعديلاتك ممتازة جدًا! 1️⃣ العلاقة بين الجداول سليمة وصحيحة بالنسبة لي .. جدول personal_data أصبح الجدول الرئيسي ، ويرتبط بجميع الجداول الفرعية بعلاقة ( One-To-Many ) مما يعني أن كل موظف يمكن أن يكون له عدة سجلات في الجداول الأخرى كـ ( الإجازات ، العقوبات ، التدريبات ، ... إلخ ) . 2️⃣ فصل البيانات المتغيرة في جداول مستقلة .. التدريبات ، الإجازات ، العقوبات ، الوظائف ، المؤهلات كل منها في جدول مستقل ، مما يسهل عمليات البحث والاستعلام والتصفية . وهذا بالطبع سيجعل الاستعلامات أكثر كفاءة مقارنة بوضع جميع البيانات في جدول واحد 😉 . 3️⃣ تحسين التسمية .. وأيضاً واضح أنك استخدمت بادئة أسماء تمييزية (مثل rkm_mlf_Qual و rkm_mlf_Vaca ... إلخ ) لربط الجداول بـ personal_data بدون تكرار أسماء الحقول بشكل مربك . قد خطر ببالي أيضاً إضافة بسيطة :- 🔹 إضافة جداول دعم إضافية عند الحاجة ، مثل جدول أنواع الإجازات ، جدول أنواع الدورات التدريبية ، جدول أسباب العقوبات بدلاً من تخزينها كنصوص داخل الجداول الأساسية ، مما يسهل التعديل مستقبلاً .
The best قام بنشر منذ 47 دقائق الكاتب قام بنشر منذ 47 دقائق 2 ساعات مضت, Foksh said: تعديلاتك ممتازة جدًا! 1️⃣ العلاقة بين الجداول سليمة وصحيحة بالنسبة لي .. جدول personal_data أصبح الجدول الرئيسي ، ويرتبط بجميع الجداول الفرعية بعلاقة ( One-To-Many ) مما يعني أن كل موظف يمكن أن يكون له عدة سجلات في الجداول الأخرى كـ ( الإجازات ، العقوبات ، التدريبات ، ... إلخ ) . 2️⃣ فصل البيانات المتغيرة في جداول مستقلة .. التدريبات ، الإجازات ، العقوبات ، الوظائف ، المؤهلات كل منها في جدول مستقل ، مما يسهل عمليات البحث والاستعلام والتصفية . وهذا بالطبع سيجعل الاستعلامات أكثر كفاءة مقارنة بوضع جميع البيانات في جدول واحد 😉 . 3️⃣ تحسين التسمية .. وأيضاً واضح أنك استخدمت بادئة أسماء تمييزية (مثل rkm_mlf_Qual و rkm_mlf_Vaca ... إلخ ) لربط الجداول بـ personal_data بدون تكرار أسماء الحقول بشكل مربك . قد خطر ببالي أيضاً إضافة بسيطة :- 🔹 إضافة جداول دعم إضافية عند الحاجة ، مثل جدول أنواع الإجازات ، جدول أنواع الدورات التدريبية ، جدول أسباب العقوبات بدلاً من تخزينها كنصوص داخل الجداول الأساسية ، مما يسهل التعديل مستقبلاً . نأتى لمرحلة ادخال البيانات هل سيتم وضع الجداول فى استعلام واحد وكيف ومن ثم النموذج لادخال البيانات أم سيتم عمل نموذج لكل جدول ما هى الطريقة الصحيحة Personnel_affairs.accdb 1
Eng.Qassim قام بنشر منذ 24 دقائق قام بنشر منذ 24 دقائق في 3/4/2025 at 18:18, ابوخليل said: لسبب في افضلية ايجاد فارق في التسمية هي احيانا تضطر الى ضم هذه الجداول في استعلام واحد نعم استاذنا ...في الاستعلام يظهر خطأ (العنوان مكرر) بصراحة في اعمالي استخدم العلاقات في الاستعلام او في النماذج ..اشعر بأن فيها مرونة والابتعاد عن الاخطاء
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.