اذهب إلى المحتوى
  • 0

ماذا افعل لربط الجداول وحفظ السجلاتات

Ahmad Alharbi2

السؤال

املك جدول يتحوي على معلومات الطالب في الجامعه وايضا جدول معلومات الطالب بعد التخرج في جدول معلومات بعد التخرج يوجد اذا هو موظف او لا وما مسماه الوظيفي واشياء اخرا وايضا يوجد في معلومات مديره المابشر في العمل لان عملي ينص على الاهتمام في معلومات الطالب بعد التخرج اريد فصل معلومات الى جدولين جدول معلومات الطالب وجدول معلومات مديره المباشر كيف اربطهم في حال قسمتهم الى جدولين لايوجد مفاتح برايمري بينهم وايضا في حال الطالب في المستقبل تغيرت جهة عمله او تغير مسماه الوظيفي بعد ترقيته فيجب علي تحديث البيانات اذا حدثتها كيف احفظ معلوماته الوظيفيه السابقه واجعلها كاسجل ارجع له وقت الحاجه

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

ربط الجداول

لكي تربط بين جدول معلومات الطالب وجدول معلومات مديره المباشر، عليك الإعتماد على مفتاح خارجي (Foreign Key)، والمفتاح الخارجي هو عمود أو مجموعة من الأعمدة في جدول يشير إلى مفتاح أساسي (Primary Key) في جدول آخر.

أي  استخدام عمود رقم الطالب (Student ID) في جدول معلومات الطالب كمفتاح خارجي يشير إلى مفتاح أساسي بنفس الاسم في جدول معلومات مديره المباشر، وإنشاء جدول معلومات مديره المباشر كالتالي:

CREATE TABLE manager (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  company VARCHAR(255) NOT NULL,
  title VARCHAR(255) NOT NULL,
  student_id INT NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (student_id) REFERENCES student (id)
) ENGINE=InnoDB;

يحدد الإنشاء عمود student_id كمفتاح خارجي يشير إلى مفتاح أساسي بنفس الاسم في جدول student.

وبمجرد إنشاء جدول المعلومات ، تستطيع إدراج السجلات الخاصة بمديري الطلاب كالتالي:

INSERT INTO manager (name, company, title, student_id)
VALUES ('Ahmed', 'LinkedIn', 'Software Engineer', 123456789);

وذلك من أجل إدراج سجل جديد في جدول manager، مع تحديد عمود student_id على 123456789.

حفظ السجلات السابقة

لحفظ معلومات الطالب الوظيفية السابقة، من الممكن الإعتماد على أعمدة التاريخ (Date Columns)، من خلال إنشاء عمود جديد في جدول student لحفظ تاريخ التوظيف، وعمود آخر لحفظ تاريخ الترقية.

أي إنشاء عمودين جديدين كالتالي:

ALTER TABLE student
ADD COLUMN employment_date DATETIME NOT NULL,
ADD COLUMN promotion_date DATETIME NOT NULL;

 بعد ذلك عليك ملء تلك الأعمدة عند إدراج سجل جديد في جدول student، كالتالي:

INSERT INTO student (name, university, graduation_date, employment_date, promotion_date)
VALUES ('Mustafa', 'Cairo University', '2023-07-20', '2023-08-01', '2024-01-01');

وذلك لإدراج سجل جديد في جدول student، مع تحديد عمود employment_date على 2023-08-01 وعمود promotion_date على 2024-01-01.

الآن استخدم تلك الأعمدة لعرض معلومات الطالب الوظيفية السابقة، مثل الاستعلام التالي لعرض معلومات الطالب الوظيفية السابقة:

SELECT name, university, graduation_date, employment_date, promotion_date
FROM student
WHERE employment_date IS NOT NULL;

بإمكانك أيضًا استخدام تلك الأعمدة لحفظ معلومات الطالب الوظيفية الحالية، أي تحديث سجل الطالب كالتالي:

UPDATE student
SET employment_date = '2024-08-01', promotion_date = NULL
WHERE name = 'Mustafa';

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...