هل اقوم بانشاء جدولين بدلاً عن جدول واحد لمعلومات موظف

لدي واجهة تسجيل دخول لموظف وفي جدول الموظف توجد بيانات تسجيل الدخلو للموظف

  • اسم المستخدم

  • كلمة المرور

وايضا المعلومات الاخري للموظف مثال: تاريخ التسجيل ,المرتب,الوظيفة ,الخ

هل من الاسلم ان اقوم بانشاء جدولين احدهما لمعلومات تسجيل الدخول والاخر للبيانات الاخري واقوم بربطهما مع بعض ام جدول واحد يحوي كل المعلومات ؟

ثم لماذا ليس هنالك مجتمع لقواعد البيانات

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

مجهول أضف ردا

انصحك بالبحث على جوجل عن كتب او كتيبات تتحدث عن (database design normalization)

اكتب normalization على جوجل سيظهر لك العديد من النتائج الجيدة ,


بالنسبة لمثالك هنا

اجعله جدولين ,

الجدول الاول (الموظفين) يحتوي على:

اسم المستخدم, كلمة المرور, تاريخ التسجيل .

الجدول الثاني (الوظائف) يحتوي على :

المرتب , الوظيفة .


(لا احب الشرح النظري في مثل هذه الامور ولكن تابع):

نريد الان ربط الجدولين معا

اظف حقل في كل جدول

في جدول الموظفين : job_id_ref وسيكون مفتاح اجنبي (Foreign key).

وفي جدول الوظائف job_id وسيكون مفتاح اساسي (Primary key)


الان لنفرض ان لدينا موظف اسمه محمد وظيفته مبرمج . ستكون المدخلات بالجدول كما يلي

جدول الموظفين :

اسم المستخدم   -    كلمة المرور  -  تاريخ التسجيل     -   job_id_ref

محمد                  -    اي شيء     -    5/5/2013          -     2

جدول الوظائف : 

  job_id     -  اسم الوظيفة    -   المرتب   

1            -     مدير قسم       -    1دولارر
2             -     مبرمج            -  2دولار
3          -        مهندس          -   3دولار

وهكذا.....

لماذا قسمناها الى جدولين ؟ اي انه ما الفائده وكيف عرفت انه من الافضل قسمه بهذا الشكل او كيف عرفت انه الوظائف ستكون لوحدها منفصله؟

الاجابة على هذا السؤال بسيط جداً , لتفادي التكرار في الجدول ! فلو فرضنا اننا جعلنا الوظائف والموظفين بنفس الجدول كم مرة ستتكرر اسم الوظيفة وراتبها ؟

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


هناك اكثر من مرحلة تمر بها بناء قاعدة البيانات ولا بد من وجود ورقة وقلم . لا تنسى النصيحة في بداية التعليق

شكرا لك علي الاهتمام

لقد فهمتها.

في جدول الموظفين : job_id_ref وسيكون مفتاح اجنبي (Foreign key).

وفي جدول الوظائف job_id وسيكون مفتاح اساسي (Primary key)

يمكن ان يكون العكس صحيح أليس كذلك ؟

اسامي الحقول انت حر بها

ولكن ان تبدل المفتاح الاساسي والمفتاح الاجنبي فهذا لا يجوز !

هل من الاسلم ان اقوم بانشاء جدولين...

إذا كان كل موظف لديه حساب يقوم بتسجيل الدخول منه و/ أو يستخدم بيانات تسجيل الدخول كتوقيع على البيانات المدخلة من قبله والذي سيكون مسؤولا عنه

ففي هذه الحالة فإن لكل موظف واحد كلمة مرور واحدة فيكون علاقة واحد إلى واحد يعني جدول واحد

وسوف يربط معلومات البيانات المدخلة مع اسم الموظف .

نعم ، وهكذا فعلت

شكرا لاهتمامك