1- ملف قاعدة البيانات database.sql :
كود PHP:
#
# Table structure for table 'articles'
#
CREATE TABLE `articles` (
`id` int(10) unsigned NOT NULL auto_increment,
`topic` int(10) unsigned NOT NULL default '0',
`subject` varchar(255) NOT NULL default '',
`writer` varchar(255) NOT NULL default '',
`description` text NOT NULL,
`text` text NOT NULL,
`resource` varchar(255) NOT NULL default '',
`date` varchar(255) NOT NULL default '',
`counter` varchar(10) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM;
#
# Dumping data for table 'articles'
#
# --------------------------------------------------------
#
# Table structure for table 'topics'
#
CREATE TABLE `topics` (
`id` int(10) unsigned NOT NULL auto_increment,
`place` int(10) unsigned NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`description` text NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM;
#
# Dumping data for table 'topics'
#
كما هو ملاحظ في الملف أنه يحتوي ما سبق مع التنبيه بأن الأسطر التي ببدايتها # غالباً ما تكون أسطر هامشية ليس لها أثر برمجي ..
طبعاً لمن فهم الدرس الخاص بعمل قاعدة البيانات في الدورة السابقة سيعرف أن ما وضع فوق عبارة عن جدولين هما articles لتحزين المقالات و topics لتخزين مواضيع المقالات ..
ولعلي أشرح جدول المواضيع أولاً ..
كما تلاحظون يحتوي على 4 حقول .. حقل id لترقيم المواضيع ولاحظوا أننا جعلنها يقوم بالترقيم تلقائياً .. وحقل place وهو لتخزين موضع الموضوع أو القسم هل هو فرعي أو رئيسي وقد جعلنا هذا الحقل رقمي لأنه سيخزن فيه رقم id القسم الأب أو الذي يندرج داخله أو يتم تخزين 0 فيه إذا كان القسم رئيسياً .. ولعلكم لاحظتم أننا وضعنا default '0' بحيث أنه إن لم يتم تخزين قيمة فعلية فيه فإنه يوضع داخله صفر ..
والحقل الذي بعده حقل name لتخزين إسم الموضوع أو القسم وهو حقل نصي محدد ب 255 حرف كأقصى حد للعرض ..
ثم الحقل description وهو حقل نصي مفتوح وغير محدود ..
نأتي للجدول الثاني وهو جدول المقالات .. ونلاحظ أن فيه 9 حقول ..
الحقل الأول id لترقيم المقالات تلقائياً ..
والحقل الثاني topic وهو حقل رقمي سيخزن فيه رقم id القسم أو الموضوع الذي يندرج المقال تحته ..
وهناك حقول نصية محددة ب 255 حرف للعنوان والكاتب ..
ثم حقل الوصف و النص الكامل وهما حقول نصية غير محدودة ..
ثم حقلي نص للتاريخ والمصدر ..
ثم حقل محدد بعشر خانات للعداد ..
فوائد من الدرس :
- للربط دائماً بين صفوف من جدول إلى جدول آخر نعتمد على الحقول الرقمية ونستخدم عادة رقم المعرف id كما سنربط بين المقال وقسمه أو موضوعه ..
- نحاول دائماً في الحقول التي لن تحتوي على نصوص فقط أرقام .. نجعلها دائماً حقول رقمية int ولعل البعض يلاحظ أن counter حقل نصي ولكن لأن البرنامج قديم فلم يعدل فيه ..
- يفضل دائماً أن تكون أسماء الحقول والجداول واضحة وسهلة حتى لا تصعب الشخص أثناء البرمجة ..
أي تساؤل أنا حاضر ..
الدرس القادم بإذن الله ملف config.php ..