الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يتم إدراج سجلات في قاعدة البيانات العلائقية بعد تصميمها

بدأه zaykem في 3 أبريل 2013 · 6 رد · 686 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله تعالى وبركاته

 

 

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

 

 

طبعا اللغة المستخدمة php 

 

 

قاعدة البيانات من نوع mysql 

 

 

قمت بتصميم القاعدة  (طبعا الجدوال بينها علاقات  .............)

 

 

سؤالي هنا هو كيف أستطيع إدخال البيانات إلى قاعدة البيانات في جدوال الآب مع إدخال البيانات في جدول الأبناء لانه يوجد علاقة بينهم ؟

 

 

من لم يفهم سؤالي بمعني آخر

 

هل يتم إدراج البيانات خطوة خطوة يعني :

 

إدراج البيانات في جدول الأب بعد يتم أخد المعرف وإدراجه في جدول الإبن أم توجد طريقة أخرى ؟؟

 

 

أتمني أن يكون سؤالي واضح

 

 

شكرا لكم

#2

ربما لديك لبس في فهم معنى العلاقات. لو ان لديك جدول للمواضيع post، فالموضوع لديه معرّف id وعمود للعنوان title وعمود للمحتوى content. ولو كان لديك جدول للردود comment، فالرد له معرّف id ولديه معرّف آخر للموضوع الذي ينتمي له هذا الرد post_id والمحتوى content. أي أن الموضوع في هذا المثال أب للردود :

+----------+       +----------+
 |   post   |       |  comment |
 +----------+       +----------+
 | id       |---+   | id       |
 | title    |   +---| post_id  |
 | content  |       | content  |
 +----------+       +----------+

 

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

id  title           content

1   Hello world!    This is my first post.      # الموضوع الأول
2   PHP Lesson 1    Welcome the first lesson... # الموضوع الثاني
3   PHP Lesson 2    In the seocnd lesson, ...   # الموضوع الثالث



id  post_id         content

1   1               I like your blog.           # تعليق على الموضوع الأول
2   2               Nice lesson.                # تعليق على الموضوع الثاني
3   2               I'm a spammer               # تعليق على الموضوع الثاني
4   3               Cool!                       # تعليق على الموضوع الثالث

 

هذه فكرة العلاقات.

#3

شكرا على ردك أخي

 

ولكن يبدو أنك لم تفهمي سؤالي جيدا  أو أني لم أوضحه بالطريقة المطلوبة

 

 

على العموم   سأعيد صياغة السؤال

 

مثل ماوضعت في مثالك  جدول posts , وجدول comments

 

لما أقوم بإدخال البيانات في جدول الاب (posts)  سيتولد لدي معرف خاص بالمقال

 

هل أقوم بإدراجه بنفسي في جدول الإبن (comments) أم أنه سيدرج وحده

 

وشكرا

#4

بالطبع أخي يلزمك أن تدرجه بنفسك، قاعدة البيانات لاتعرف لأي موضوع ينتمي هذا الرد. فلابد من التحديد.

 

-- انشاء جدول المواضيع
CREATE TABLE post(
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL
 );

-- انشاء جدول الردود
CREATE TABLE comment(
    id INT PRIMARY KEY AUTO_INCREMENT,
    content TEXT NOT NULL,
    post_id INT,    -- هذا العمود الذي يبين الموضوع
    FOREIGN KEY(post_id) REFERENCES post(id)
 );

-- اضافة موضوع
INSERT INTO post VALUES(NULL, 'Hello world!', 'This is my first post');

-- الاستعلام عن الموضوع
SELECT id, title FROM post;

-- اضافة الرد الأول
INSERT INTO comment VALUES(NULL, 'Nice post!', 1);   -- رقم 1 نحدد به الموضوع

-- اضافة الرد الثاني
INSERT INTO comment VALUES(NULL, 'I like your blog :)', 1);  -- رقم 1 نحدد به الموضوع

-- الاستعلام عن الردود التابعة للموضوع الأول
SELECT id, content, post_id FROM comment WHERE post_id = 1;

 

mysql> -- انشاء جدول المواضيع
mysql> CREATE TABLE post(
    ->  id INT PRIMARY KEY AUTO_INCREMENT,
    ->  title VARCHAR(255) NOT NULL,
    ->  content TEXT NOT NULL
    -> );
Query OK, 0 rows affected (0.13 sec)

mysql> -- انشاء جدول الردود
mysql> CREATE TABLE comment(
    ->  id INT PRIMARY KEY AUTO_INCREMENT,
    ->  content TEXT NOT NULL,
    ->  post_id INT,    -- هذا العمود الذي يبين الموضوع
    ->  FOREIGN KEY(post_id) REFERENCES post(id)
    -> );
Query OK, 0 rows affected (0.12 sec)

mysql> -- اضافة موضوع
mysql> INSERT INTO post VALUES(NULL, 'Hello world!', 'This is my first post');
Query OK, 1 row affected (0.09 sec)

mysql> -- الاستعلام عن الموضوع
mysql> SELECT id, title FROM post;
+----+--------------+
| id | title        |
+----+--------------+
|  1 | Hello world! |
+----+--------------+
1 row in set (0.00 sec)

mysql> -- اضافة الرد الأول
mysql> INSERT INTO comment VALUES(NULL, 'Nice post!', 1);   -- رقم 1 نحدد به الموضوع
Query OK, 1 row affected (0.20 sec)

mysql> -- اضافة الرد الثاني
mysql> INSERT INTO comment VALUES(NULL, 'I like your blog :)', 1);  -- رقم 1 نحدد به الموضوع
Query OK, 1 row affected (0.04 sec)

mysql> -- الاستعلام عن الردود التابعة للموضوع الأول
mysql> SELECT id, content, post_id FROM comment WHERE post_id = 1;
+----+---------------------+---------+
| id | content             | post_id |
+----+---------------------+---------+
|  1 | Nice post!          |       1 |
|  2 | I like your blog :) |       1 |
+----+---------------------+---------+
2 rows in set (0.00 sec)

mysql>
#5

شكرا يأخي  لقد فهمت الموضوع

 

جزاك الله عنا خيرا

 

عندي سؤال خارج الموضوع لأني رأيت أنك خبير بc++ و c

 

أنا درست لغة الc بالجامعة وأنت كما تعلم ان الجامعات العربية لايوجد فيها تطبيق فقط نظري

 

المهم أنا أحاول أن أقوم بعمل برامج مثل برامج إدراة مخازن البيع و برامج إدراة الشركات بلغة c++ او الc

 

ولكن تنقصني الخريطة التي أبدأ منها

 

مثلا :

 

تصميم قاعدة البيانات

 

برمجة النوافد التي يتم إدخال البيانات منها

 

أنا أضيع كل ماأريد التفكير في ذلك

 

أتمني تعطيني خطوات لعمل مثل هذه البرامج بc++ او c

 

شكرا

#6

برامج ادارة المخازن لاتحتاج c\c++ مجهود كبير والفرق قليل مقارنة مع لغات كـc#\java، اطلع على هذا الموضوع "بخصوص QT/c++ و VC++ مع اسئلة تدور في ذهني".

 

يمكنك استخدام qt لعمل برنامج رسومي ويمكنك الوصول لقواعد البيانات باستخدام الـclasses التي توفرها qt. اطلع على "قسم Cross Platform GUI Libraries العام"

#7

أوكي أخي

 

أنا هذفي هو إنشاء برامج عادية ( برامج مخازن وغيرها )

 

فبماذا تنصحني أنت c++ مع مكتبة QT  أم   واحدة من لغات الدوت نت مثل C#؟

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…