اعتقد ان قاعدة بيانات ذات الصلة اللاعبين في لعبة واحدة الى اخرى (على سبيل المثال ، لتحديد من هو صديق كل لاعب والذي كان عدوا لكل لاعب).
|
|
أولا دعنا اصنع جدولا لتخزين البيانات بالنسبة لكل من اللاعبين. مهلة اضافية من المفتاح الاساسي ، الذي يتيح لك ان تعتمد على حقيقة ان جميع الصفوف قد فريدة الميدانيه التي يمكن استخدامها كمرجع. كما نلاحظ أن كل صف من البيانات في المفتاح الاساسي يجب ان تكون فريدة من نوعها لاحد آخر. هنا هو البيان المطلوب لخلق قاعدة بياناتنا) دعا gamedata) ونحن playerdata الجدول.
الخلية> انشاء قاعدة بيانات gamedata ؛ الخلية> استخدام gamedata ؛ الخلية> انشاء الجدول playerdata) --> اسم المستخدم شار (255) ليست فريدة من نوعها لاغيه ، و--> كلمة السر شار (255) ، --> عصر دولي ، --> datecreated الزمني ، --> المفتاح الأساسي (اسم المستخدم)) ؛
أشعار هنا كيف نحدد اسم المستخدم العمود ليست فريدة من نوعها ، وايضا لاغيه. بعبارات بسيطة ، وهذا يعني انه يجب ان يحتوي على قيمة ، وقيمة يجب ان لا تكون هي نفس اسم المستخدم اية أخرى في اي مكان آخر سجل في الجدول. نلاحظ أيضا ان نكون قد حدد المفتاح الاساسي من الجدول ان يكون اسم المستخدم المجال ، كما اننا سوف يبحث اساسا عن هذا الميدان ، والتي سترى في اي لحظة.
وبالاضافة الى هذه المعلومات ، ونحن بحاجة ايضا الى طريقة تخزين بعض الاصدقاء والاعداء. ويتم ذلك عن طريق وصلة الجدول. وصلة الجدول حقا هو مجرد قاعدة بيانات الجدول العادي ، ولكن هدفه الرئيسي هو ربط البيانات بشكل او بآخر للحفاظ على الفضاء والطريقة المثلى للوصول قاعدة بيانات المعلومات.
دعنا خلق ربط الجداول اثنين ، واحد للالمتصله لاحد الاصدقاء والاعداء المتصله ببعضها البعض. فيما يلى البيانات التي يلزم اتخاذها لانجاز ذلك.
| ملاحظه | اذا ربط الجداول المستخدمة ، هو السبيل الأمثل لتخزين القيم دولي ويكون هناك كود الميدانيه مع auto_increment في الجدول playerdata باعتباره المفتاح الاساسي. انها ليست كما قراءتها عند اداء مختارة ، ولكن من هو اسرع من داخل التطبيقات الخاصة بك. عند استكمال لاعبا اسم ، ولا كسر سلامه قاعدة البيانات. أيضا ، وكثيرا ما ربط هياكل الجداول التي ستستخدم فقط عندما تكون هناك علاقات ن مبلغ من صف واحد الى الصفوف الأخرى. اذا كان هناك دائما علاقة واحدة فقط (واحد من صديق او عدو) ، وجود صلة مباشرة ينبغي استخدامها. |
الخلية> انشاء الجدول relatefriends) --> اعب شار (255) ، --> صديق شار (255)) ؛
أيضا :
الخلية> انشاء الجدول relateenemies) --> اعب شار (255) ، --> العدو شار (255)) ؛
واذا كنا الان تبين الجداول في قاعدة البيانات مع القيادة التالية :
الخلية> تبين الجداول ؛
... يمكننا ان نرى الان لدينا قاعدة بيانات تحتوي على ثلاثة جداول مختلفة - لدينا playerdata الجدول وهما ارتباط الجداول.
دعنا الان اضيف عينة من البيانات لاعب بيانات الجدول ، حتى نتمكن من التجربه مع ربط الجداول ونفهم منطق كيفية استخدامها بفعاليه. هنا هو البيان المطلوب لدينا لإضافة بيانات العينه الى playerdata الجدول :
الخلية> تضاف الى القيم playerdata --> ( 'اندرو' ، 'qwerty' ، 20 ، لاغيه) ، --> ( 'هنري' ، 'letmein' ، 34 ، لاغيه) ، --> ( 'ساندرا' ، 'dra33' ، 19 ، لاغيه) ، --> ( 'جون' ، 'j12d' ، 23 ، لاغيه) ، --> ( 'جيني' ، 'jen123' ، 34 ، لاغيه) ؛
اذا قمنا باختيار كل المعلومات من الجدول playerdata الآن استخدام الأمر التالي :
الخلية> اختيار * من playerdata
الان ان لدينا بعض نماذج البيانات ، دعنا نحاول ايجاد بعض العلاقات بين اللاعبين في قاعدة البيانات. الاولى اضافة الى ربط الجدول relatefriends ان هنري هو اصدقاء مع ساندرا. هنا هو البيان المطلوب لاضافة هذا الى ربط الجدول :
الخلية> تضاف الى القيم relatefriends --> ( 'هنري' ، 'ساندرا') ؛
دعنا الآن ان اضيف بعض البيانات الى نماذج اكثر من كل relatefriends وrelateenemies ربط الجداول ونرى كيف يمكننا التلاعب في البيانات. البيانين المطلوب اضافته في عينه البيانات ادناه :
| ملاحظه | لمنع كونه صديق والعدو ، في الوقت نفسه ، واحدة فيما يتعلق الجدول يمكن استخدامها. اضيف حقل "العدو" العلم ، وإذا كانت مجموعة ، وهذا يعني انهم اعداء ؛ والا فانهم اصدقاء. |
الخلية> تضاف الى القيم relatefriends --> ( 'اندرو' ، 'هنري') ، --> ( 'اندرو' ، 'جون') ، --> ( 'اندرو' ، 'جيني') ، --> ( 'ساندرا' ، ' جيني ') ؛
وأيضا :
الخلية> تضاف الى القيم relateenemies --> ( 'اندرو' ، 'ساندرا') ، --> ( 'هنري' ، 'جيني') ، --> ( 'هنري' ، 'جون') ؛
الآن وقد اصبح لدينا جميع اعمالنا بيانات العينه ، ودعنا نرى ما اذا كان يمكننا معرفة ما الذي هو اصدقاء مع اندرو باستخدام البيان الآتي :
الخلية> اختر صديقك من relatefriends فيها لاعب = 'اندرو' ؛
عندما نقوم بتنفيذ هذا البيان ، console يعرض قائمة بأسماء جميع اللاعبين ان اندرو هو مع الاصدقاء.
ومرة اخرى ، نستطيع ان نفعله بالضبط نفس مع relateenemies ربط الجدول. على سبيل المثال ، يمكننا ان اكتشف كل من هنري أعداء مع البيان الآتي :
الخلية> اختيار العدو من حيث relateenemies اعب = 'هنري'
مع هذه البيانات ، واذا كنا ثم اراد الحصول على المزيد من المعلومات عن العدو ان هنري قد اسم المستخدم من جيني ، ونود أن استخدام البيان الآتي :
الخلية> * اختر اسم المستخدم من حيث playerdata = 'جيني' ؛
Online: 548 users browsing the articles directory
|
|