السلام عليكم ورحمة الله وبركاتة انا اريد ان اصمم موقع للباحثين عن عمل واريد مساعدة في فكرة عملية matching اي مقارنة بين الحقول للباحث مع الجهة ليعرف كل جهة مايناسبها من باحثين والعكس صحيح و للعلم ان كل جهة تحدد الحقول المراد البحث عنها ياريث تساعدوني و شكراَ
مساعدة في كود matching عملية مقارنة بين الحقول
ياجماعة معقول مافي اي مساعدة ولا رد
السلام عليكم.
أخي الموضوع بسيط إن شاء الله.
لنفرض أنه لديك حقلين:
حقل مستوى الشهادة : و لها القيم التالية من الجدول الرئيسي ( إعدادي - ثانوي - معهد - جامعة - ماجستير .... الخ ) و لنسمه : DegreeID
حقل تخصص البرمجة : و لها القيم التالية من الجدول الرئيسي ( C# , VB , Java و PHP ... الخ ) و لنسمه : LanguageID
هذا الحقل سيكون موجوداً لدى الباحث عن العمل و أيضاً لدى جهة العمل.
لدى جهة العمل و بالنسبة لحقل مستوى الشهادة: فهذا الحقل يكون واحداً أي أن مستوى الشهادة يكون جامعة فقط و الباحث عن العمل يجب أن يحقق هذا المستوى أو أعلى مثلاً:
where Seeker.DegreeID >= Seeker.DeegreeID
(طبعاً أنا افترضت هنا لتسهيل الشرح أن ال ID متصاعد ) و هذا يعني أن مستوى التعليم للبهحث عن العمل يجب أن يطابق أو يزيد عن مستوى التعليم المطلوب من جهة العمل.
بالنسبة لحقل تخصص البرمجة المطلوب: ففي هذه الحالة يمكن أن تطلب جهة العمل تخصصين أو أكثر و بالتالي يجب على الباحث عن العمل أن تكون بعض/كل تخصصاته تحقق جميع التخصصات المطلوبة من جهة العمل.
وبالتالي الاستعلام يكون له الشكل التالي:
declare @JobID int = 1 select Seekers.SeekerID, SeekerName, count(SeekerLangs.LanguageID) from Seekers join SeekerLangs on Seekers.SeekerID = SeekerLangs.SeekerID join JobLangs on SeekerLangs.LanguageID = JobLangs.LanguageID where JobLangs.JobID = @JobID group by Seekers.SeekerID, SeekerName having count(SeekerLangs.LanguageID) = (select count(*) from JobLangs where JobID = @JobID)
كلامك جميل اخي ومنطقي ولكن المشكلة ان عملية المقارنة لاتتم على جدول المؤهلات العلمية بين الجهة والباحث بل ان المشكلة تتم حسب رغبة الجهة انا سويت جدول لي الجهة وسميته وظيفة هذا الجدول حيكون فيه رقم الوظيفة واسم الوظيفة ورقم الجهة و الدولة ونوع الشخص سنوات الخبرة و الراتب وقمت بأضافة خمسة حقول اخرا ستكون قيمتها true or false وهذي الحقول هيا الاشياء التي ستختارها الجهة للمقارنة عليها مثلاً يريد التخصص والمؤهل والدولة سنوات الخبرة و الراتب طبعاً اخي جدول الوظيفة حيكون معاه مجموعة من الجداول المساعدة مثل المؤهلات وجدول المهارات وجدول اللغات لأن الوظيفة التي تقدمها الجهة ممكن ان تشترط فيها اكثر من للغة وكذلك ممكن ان تطلب اكثر من مهارة فلا استطيع ان اظيفها في نفس جدول الوظيفة والمشكلة اخي ان ليس كل جهة سوف تحدد نفس الاشياء المقارنة على اسساسها فممكن جهة تشترط فقط سنوات الخبرة و المؤهل وجهة اخر ا تختار مجموعة من اللغات و تخصص وطبعاً يجب ان تتحقق المطالب حتى نعرف من تطابق مع هذه الجهة .
وايظاً بنسبة للباحث فعدنة جدول الباحث الذي سيكون فيه رقمة ومعلوماته الشخصية وهناك ايظاً جدول اخر وهوا الوظيفة المرغوبة للباحث يكون فية رقم الباحث و المسمى الوظيفي و الدولة و الهدف من الوظيفة ودوام العمل و الراتب وهناك جداول مساعدة مربوطة بالباحث كجدول المؤهلات وجدول اللغات وجدول المهارات .
لو تلاحظ اخي ان الاشياء التي سيتم المقارنة عليها مبعثره في جداول كثيرة
ملاحظة: كل ماتختار الجهة الاشياء المراد البحث عنها سيظاف في احد الحقول التي تكلمة عليها في البداية الموجودة في جدول الوظيفة التي تكون true or false يعني لو اختارت تخصص حيكون حقل مسما بأسم التحصصات قيمتة ستصبح true و هكذا ارجو ان تكون فهمت قصدي اخي الكريم واسف على تعبك
ممكن ترفق قاعدة البيانات حتي نتمكن من كتابة المر مع قليل من البيانات
قد يفيدك هذا الرابط
سبحانه الله وبحمده سبحانه الله العظيم
if (You Love ArabTeam2000 ) MessageBox.Show("All ArabTeam2000 Love You"); else MessageBox.Show("go to your mama"); Make it run, make it right, make it fast, make it small
normalize your data and don't make it look like excel sheet
الأبداع في الرأس والعلم في الكراس
روابط مفيدة
[دروس] تجاهل الwhere
طريقة الاضافة للجدولين مرتبطين مرة واحدة
قراءة صوره من مسار
حل مشكلة الارقام العربي في الكريستال ريبورت
حل مشكلة تصدير OLE Object الي Physical File مرة أخري
كود عمل نسخة يومية من قاعدة البيانات بتاريخ مع حذف النسخة السابقة من 30 يوم مضي
معظم دوال التعامل مع string
Change Data Capture
SQL Course
string-format-datetime
LINQ to SQL in C#
Sum-of-previous-row-values-in-SqlServer
alarm-for-stop-agent-service
SQL Server CTE