منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى العرب التعليمى

منتدى العرب التعليمى تعليمى شامل
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 التخطيط لتصميم قاعدة البيانات Database Design

اذهب الى الأسفل 
كاتب الموضوعرسالة
الويب المصرى
الباشا صاحب المنتدى
الباشا صاحب المنتدى
الويب المصرى


عدد المساهمات : 434
تاريخ التسجيل : 14/11/2010
العمر : 37

التخطيط لتصميم قاعدة البيانات Database Design  Empty
مُساهمةموضوع: التخطيط لتصميم قاعدة البيانات Database Design    التخطيط لتصميم قاعدة البيانات Database Design  Emptyالسبت نوفمبر 20, 2010 11:35 pm

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


فى الدرس السابق كان هناك ثلاث نقاط تم التركيز عليهم.

- المفاتيح الرئيسية Primary Keys
- العلاقات بين الجداول Relationships
- المفاتيح الدخيلة Foreign Key



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

والمحاكاة مع التصميمات الواقعية لقواعد البيانات.

دعونا نخطط سويا لبناء قاعدة بيانات منتدى بسيط.

ماهى الأشياء الأساسية بكل منتدى؟

هم خمسة اشياء.


1. اعضاء
2. تصنيفات للأقسام
3. منتديات توضع داخل التصنيفات
4. مواضيع
5. تعليقات على المواضيع



(طبعا هذا بغض النظر عن اسكريبتات المنتديات المتوفرة التى عمل اصحابها لسنوات لأنتاجها بالشكل الذى تراه, فأنت مازلت مبتدئ فـ دعنا نأخذ السلم من بدايته)

الأن بعد ان عرفنا متطلبات سكريبت المنتدى.

اصبح لدينا خلفية بسيطة عن احتياجتنا.

لنفصل بيانات هذه القاعدة.

ويأتى التفصيل بالشكل التالى

- الأعضاء
يأتى تحتها
o اسم المستخدم
o بريد المستخدم
o تاريخ التسجيل
o عنوان الأى بى

- التصنيفات
يأتى تحتها
o اسم التصنيف (كالمنتديات العامة, المنتديات الرياضية, الخ)
o ترتيب عرض هذا التصنيف (ترتيب التصنيف من حيث الظهور, هل سيظهر كا اول تصنيف, ام ثانى تصنيف, الخ)

- الأقسام (قسم الألعاب, قسم البرامج, الخ)
يأتى من تحتها
o اسم القسم
o ترتيب العرض

- المواضيع
يأتى من تحتها
o عنوان الموضوع
o محتوى الموضوع
o اسم كاتب الموضوع
o تاريخ كتابة الموضوع

- التعليقات على المواضيع
يأتى من تحتها
o كاتب التعليق
o محتوى التعليق



انظر كيف خططنا لكل ماسبق, اول شئ حددنا الأهداف الأساسية للبيانات التى يتم حفظها داخل قاعدة البيانات, ثم بدأنا بالتعمق اكثر داخل كل من البيانات, ثم قسمناه للجداول التى سنحتاجها.

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

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

تصنيف يسمى "لغات البرمجة" وتصنيف اخر يسمى "الإنترنت والكمبيوتر"

وانشأنا قسمين, "قسم الـ Php" وقسم "الألعاب"

بالطبع انت تعلم ان قسم الـ php سيكون تحت تصنيف لغات البرمجة, وقسم الألعاب تحت تصنيف الإنترنت والكمبيوتر.

لكن فى التصميم اعلاه كيف سنحدد هذا؟
دعنى اهمس فى اذنك, اجابة هذا السؤال فيما شرحناه بالدرس السابق.
بإستخدام الـ Primary keys والـ Foreign Keys والعلاقات بين الجداول.

اذن سأعيد التصميم الموجود اعلاه مع بناء العلاقات بين كل الجداول.

- الأعضاء
يأتى تحتها
o هوية العضو الـ ID (تكون Primary Key, يعنى غير قابلة للتكرار, او التعديل فيما بعد, ولا يمكن ان تكون فارغة)
o اسم المستخدم
o بريد المستخدم
o تاريخ التسجيل
o عنوان الأى بى

- التصنيفات
يأتى تحتها
o هوية التصنيف ID
o اسم التصنيف (كالمنتديات العامة, المنتديات الرياضية, الخ)
o ترتيب عرض هذا التصنيف (ترتيب التصنيف من حيث الظهور, هل سيظهر كا اول تصنيف, ام ثانى تصنيف, الخ)

- الأقسام (قسم الألعاب, قسم البرامج, الخ)
يأتى من تحتها
o هوية القسم يعنى الـ ID لهذا القسم
o اسم القسم
o ترتيب العرض
o هوية تصنيف هذا القسم يعنى الـ ID الخاصة بتصنيف هذا القسم!
(لاحظ هنا ان العلاقة بين الأقسام والتصنيفات هى one-to-many, حيث انه يمكن ان يكون هناك اكثر من قسم داخل التصنيف, لكن لكل قسم تصنيف واحد فقط, وهذا الـ id هنا يكون هو الـ Foreign Key اتمنى تكون الصورة واضحة )

- المواضيع
يأتى من تحتها
o هوية الموضوع ID (وايضا ستكون Primary Key )
o عنوان الموضوع
o محتوى الموضوع. لن نضع فى هذا الحقل محتوى الموضوع, لكن سنضع به الـ ID الخاصة بالمحتوى داخل جدول التعليقات, ويصبح هذا الحقل, هو هوية الحقل الذى به محتوى الموضوع من جدول التعليقات)
o اسم كاتب الموضوع - بدلا من اسم كاتب الموضوع سنستخدم هوية كاتب الموضوع, وعن طريقها نصل لإسمه.
o القسم الذى تم اضافة الموضوع به يعنى الـ ID الخاصة بهذا القسم.
(لاحظ هنا ايضا ان العلاقة بين المواضيع والأقسام هو ايضا one-to-many
حيث يمكن للقسم ان يكون به اكثر من موضوع, لكن الموضوع لايمكن ان يكون بأكثر من قسم)
o تاريخ كتابة الموضوع

- التعليقات على المواضيع
يأتى من تحتها
o هوية التعليق الـ ID
o هوية الموضوع التابع له هذا التعليق.
o كاتب التعليق - بدلا من هذا نستخدم هوية كاتب الموضوع.
o محتوى التعليق




اتمنى تكون نقاط هذا الدرس واضحة وايضا تكون وضحت ماسبق وتم شرحه.

ان شاء الله بالدرس التالى, سنشرح انواع الجداول بقاعدة البيانات,
لنستطيع تحديد نوع الجدول الذى سنستخدمه بناء على البيانات التى نحتاج لتخزينها به.

تمنياتى بكل توفيق بإذن الله.
المصدر: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://egypt1.forumegypt.net
 
التخطيط لتصميم قاعدة البيانات Database Design
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» معنى المفاتيح Keys والعلاقات بين جداول قاعدة البيانات
» ترميز قاعدة البيانات وانشائها وانشاء الجداول MySQL
» انواع الحقول فى قواعد البيانات Database data types
» دورات لتصميم الفيروسات
» الدرس الثالث "كيفية انشاء قاعدة بيانات وتركيب المنتدى عليها

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى العرب التعليمى :: منتدى البرمجة والتصميم والتطوير :: قسم قواعد البيانات :: قسم دورة Microsoft my SQL-
انتقل الى: