[Powered by Google Translate] [8 ہفتے جاری]
[ڈیوڈ J. Malan] [ہارورڈ یونیورسٹی]
[یہ CS50 ہے.] [CS50.TV]
>> یہ CS50 ہے، تو یہ 8 یہاں ہفتہ کے آخر ہے.
کورس کے ہم نے اس ہفتے کے اوائل میں طوفان کے تھوڑا سا تھا،
ابھی یہ واقعی صرف آپ اور آپ کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اس لیکچر ہال میں،
لیکن آج ہم پی ایچ پی کے بارے میں ہماری بات چیت جاری
اور ویب پروگرامنگ کے بارے میں زیادہ عام طور پر، اور ہم بھی خیال متعارف کرانے
ڈیٹا بیس کی، خاص طور پر ایک ایس کیو ایل، جو کہ بہت مقبول ان دنوں ہے کہا جاتا ہے،
کیونکہ اس کے ساتھ ساتھ scalability کیونکہ اس کے مفت اور اوپن سورس ہونے کے بڑے حصے میں.
>> لیکن اس سے پہلے، جہاں ہم نے آخری بار کو چھوڑ دیا ہے پر ایک نظر.
کو یاد ہوگا کہ ہم نے کئی Frosh IMS مثالیں دیکھ رہے تھے،
اور یہ گھنونا فارم تھی کہ میں کوئی 15 + سال پہلے آیا
کے لئے کیمپس کے رجسٹر پر freshman intramural کھیلوں کے لئے طالب علموں کو
اصل ٹریک کرنے کے لئے اب یارڈ بھر Wigglesworth بغیر
کچھ پراکٹر کے دروازے کے نیچے ایک کاغذ کے جسمانی ٹکڑا سلائڈ.
اس کے بجائے ہم آن لائن سب کچھ منتقل کر دیا گیا، لیکن کیا ہے کہ ہم نے استعمال کرنے کی ضرورت ہے
چند ٹیکنالوجی کے، ایک تو، ہم HTML، ہایپر ٹیکسٹ مارکاپ زبان کی ضرورت ہے،
جو پھر اس مارکاپ زبان ہے جس کے ساتھ آپ کو ویب کے صفحات structurally بنا ہے.
>> ، ان دنوں CSS تھوڑا سا استعمال کرتے ہوئے، سٹائل شیٹس جھرن کاری
جس کے تحت ہم ویب کے صفحے کے stylizations ایک تھوڑا سا مختلف نحو کا استعمال کرتے ہوئے استعمال کرتے ہیں،
جبکہ HTML اس ڈھانچے کے بارے میں سب کو تھا.
ہم نے بھی ایک ویب پروگرامنگ زبان متعارف کرانے کی ضرورت ہے.
اس صورت میں، ہم پی ایچ پی کا استعمال، اور پی ایچ پی نے ہمیں کرنے کی اجازت دینے جا رہا ہے کریں گے
کو متحرک پیداوار کے مواد کے ساتھ ساتھ جیسے پروگرام چیز
ای میل بھیجنے نوٹ ہم نے گزشتہ ہفتے کو چھوڑ دیا ہے، جیسا کہ کیس تھا.
>> یاد ہے کہ اس کے لئے کوڈ 2 حصوں میں تھا.
ایک، ہم froshims3.php تھا،
اور یہ اس کے اندر ایک HTML فارم کے ساتھ بڑے پیمانے پر مارکاپ تھا،
CSS انداز صفات میں چھوٹے یہاں تھوڑا سا
تاکہ فارم خود کے صفحے پر، لیکن اس کے بعد مرکوز کی جائے گی
ہم نے کچھ نمائندہ فارم آدانوں ایک متن والے فیلڈ، چیک باکس،
کچھ کے ریڈیو بٹن کو منتخب مینو، اور جمع کرائیں بٹن.
اور اس فارم کے ذریعے، ہم ایک فائل ہے جو بظاہر register3.php بلایا گیا تھا کو پیش،
جو خود کو اس طرح کچھ دیکھا.
اب، register3.php، یاد، میں کوڈ کے سب سے زیادہ ای میل کے بارے میں تھی.
یہ قسم ہے جو کہ اس بات کو یقینی بنانے کے لئے پیش کیا گیا تھا کی توثیق کے تھوڑا سا کیا
کہ شعبوں اصل میں فراہم کی گئی ہے جو متوقع تھا.
اس کے بعد ہم نے کچھ پی ایچ پی افعال کو بلایا تھوڑا نئی نحو کا استعمال کرتے ہوئے،
اگرچہ یہ C. سے ادھار لیا ہے
>> یہ تیر آپریٹر ہمیں پر مبنی پروگرامنگ شئی کی نامی کسی چیز کا استعمال کرنے کے لئے کی اجازت دیتا ہے ہے.
ہم نے اس میں کسی تفصیل سے یہاں نہیں جانا، لیکن اب پتہ
یہ اشیاء کے ساتھ منسلک افعال رکھنے کا ایک طریقہ ہے،
جس میں ساخت کی ایک خاص قسم کی ہیں، جیسا کہ ہم نے سی میں دیکھا
لیکن اب یقین، لے کہ یہ صحیح استعمال کرنے کے لئے نحو ہے
جب اس PHPMailer لائبریری کی طرح لائبریری کا استعمال کرتے ہوئے.
اور پھر ہم اس فائل کے آخر تک متحرک طور پر ایک ای میل پیدا کیا تھا
جو کو میری jharvard@cs50.net اکاؤنٹ میں بھیج دیا کر لی
، میرے jharvard@cs50.net اکاؤنٹ سے
اور ہم صارف کے مطابق کو بتایا کہ انہوں نے اس کھیل کے لئے رجسٹرڈ ہے.
وہ کافی زیادہ ہے جو Frosh IMS سائٹ ان تمام سال پہلے کیا تھا
جب میں نے اسے نافذ کیا، ایک مختلف قسم کی زبان میں حاصل کی جاچکی ہے،
لیکن یہ آپ کو شاید طاقت سے ظاہر ہوتا ہے کہ آپ
اب جب کہ تم نے خود کا اظہار نہ صرف پروگرام کے ذریعے کر سکتے ہیں
C کی طرح ایک زبان میں کم سطح پر ہے لیکن ایک بہت اعلی سطح پر
یہ بہت اصلی ای میل کی طرح دنیا کی ایپلی کیشنز اصل کو حل کرنے کے ساتھ
کچھ حقیقی دنیا کے مسائل.
>> اب، کورس کی، اگرچہ میں اس اسکرپٹ میں کچھ پیدا کرنے کے لئے استعمال کرتے ہیں
jharvard@cs50.net، جو واقعی ایک اکاؤنٹ ہے سے متحرک طور پر ای میلز
کہ میں دوستوں کو رسائی حاصل ہے، بہت بھیجنے محتاط ہو
صرف اکاؤنٹس کہ اصل میں آپ کے اپنے ہیں سے میل،
ایسا نہ ہو کہ آپ کو جو چیزیں زندگی میں گرم پانی کے تھوڑا سا میں ملتا ہے.
کے ساتھ اس نے کہا، اب ایک مختلف مسئلہ مکمل طور پر حل کرنے کے لئے کی منتقلی
برقرار رکھنے ریاستوں کی ہے.
اب، یہ اصل میں کیا مطلب ہے؟
HTTP، اس ہایپر ٹیکسٹ ٹرانسفر پروٹوکول،
اصل میں ایک بے وطن پروٹوکول ہے، اور اس کا مطلب کیا ہے
تم جب Google.com طرح کچھ تو ھیںچو اور مارا داخل
عام طور پر آپ کے براؤزر کتائی کی علامت میں سے کچھ قسم تو یہ ہے
کسی ویب کے صفحے میں نتائج ڈاؤن لوڈ کیا جا رہا ہے،
اور پھر اس چھوٹے آئکن کتائی رک جاتا ہے، اور یہ کہ بے شک تجویز
کہ HTTP سرور سے رابطہ کے کچھ قسم کی مکمل ہے اور یہ بات ہے.
HTTP احساس ہے کہ یہ برقرار رکھنے کے لئے نہیں ہے میں بے وطن ہے
اسی طرح کے اسکائپ میں مسلسل سرور سے رابطہ کرتا ہے
یا Gchat ہے کیونکہ HTTP کے ساتھ
مفروضہ یہ ہے کہ ایک بار آپ کو ایک ویب صفحے ہے کہ یہ دلوایا ہے.
>> اب حقیقت میں فیس بک اور گوگل نقشہ جات جیسے سائٹس پر ان دنوں
اور ٹویٹر کی طرح ایک بہت زیادہ تحرک ہے جس کے تحت
کے بعد بھی اس آئکن کتائی روکتا ہے آپ کو حقیقت میں کے بارے میں مزید اپ ڈیٹس حاصل کر سکتے ہیں
سرور پر زیادہ ٹویٹس، کا درجہ فیس بک پر اپ ڈیٹس اور طرح سے.
لیکن پھر بھی ایک ٹیکنالوجی ہے کہ ہم ایک یا دو ہفتے میں کے بارے میں بات کریں گے کا استعمال کرتے ہوئے کر رہا ہے
ایجیکس نامی جاوا اسکرپٹ زبان کا استعمال کرتے ہوئے کے طور پر جانا جاتا ہے،
لیکن دن کے اختتام پر، HTTP اب بھی بے وطن ہے.
اور اس کے باوجود اگر آپ کو کسی نہ کسی طرح ایک صارف کے بارے میں باتیں یاد کرنا چاہتے ہیں
کے بعد بھی وہ اپنے سرور سے رابطہ منقطع ہوگیا ہے
پی ایچ پی کی آپ کو ایسا کرنے کا ایک ذریعہ کا متحمل ہے
کیونکہ، جیسا کہ ہم نے آخری بار دیکھا ہے، پی ایچ پی superglobals کی ایک بڑی تعداد ہے،
اور ایک superglobal ہے، پھر، ایک خصوصی عالمی متغیر
جو ویب سرور کی طرف سے اور پی ایچ پی کی خود کی طرف سے آپ کے حوالے ہے.
>> تم کچھ بھی اس میں اقدار پر ڈال کرنے کی ضرورت نہیں ہے،
اور superglobals ہم ابھی تک دیکھا ہے میں اور پوسٹ کر رہے ہیں، حاصل
ہے جہاں فارم قطعے آپ کے لئے خود کار طریقے سے کیا جاتا ہے،
کے ساتھ ساتھ دوسروں کے ایک جوڑے کی ہے کہ ہم نے ابھی تک نہیں کیا ہے.
_server ڈالر کے اندر کچھ خاص سرور خود سے متعلق متغیر ہیں.
IP پتہ، کیا آپ کو پروٹوکول، HTTP یا HTTPS کا استعمال کیا ہے،
آپ کی درخواست کے طریقہ کار اور اس طرح کیا استعمال کرتے ہیں، تو اس میں کچھ دلچسپ ہے،
سرور کے بارے میں رسیلی تفصیلات، اصل میں، وہاں میں صارف کے طور پر اچھی طرح سے.
$ _cookie، جس میں جہاں ان چیزوں کوکیز کو محفوظ کیا جاتا ہے کہا جاتا ہے ہے.
ہم کوکیز پر وقت خرچ نہیں آج خود کرے گا،
لیکن اب پتہ چلا ہے کہ ایک کوکی صرف معلومات کا ایک چھوٹا سا ٹکڑا ہے
کہ ایک ویب سرور کی ایک ویب براؤزر پر بوتے کر سکتے ہیں
اور میں اس کی RAM یا اس کے کمپیوٹر کی ہارڈ ڈرائیو کو
ایک صارف کے بارے میں معلومات مثال کے طور پر محفوظ، ان کے صارف کا نام
تاکہ وہ ٹائپ کرنے کی ضرورت نہیں ہر بار وہ میں لاگ ان کریں یا کچھ
منفرد نمبر یا اس صارف کے لئے شناخت کنندہ
تاکہ تم ان کی اسی قسم کے بارے میں سوالات سے پریشان نہیں ہے
مستقبل میں ترجیحات، لیکن سود کی زیادہ سے زیادہ
ابھی _session ڈالر ہے.
>> یہ superglobal، جو دوسروں کی طرح، آپ کو پی ایچ پی کی کے حوالے ہے خود کار طریقے سے
آپ پی ایچ پی کی بنیاد پر ویب سائٹوں کب لکھ رہے ہیں
تم کچھ کرنا چاہتے ہیں، ڈور، integers جمع کر سکتے ہیں،
سچل پوائنٹس، اقدار، arrays، اشیاء،
واقعی کچھ جو آپ چاہتے ہیں، اور یہ آپ کو اس طرح میں سٹور کرنے کی اجازت دیتا ہے
کہ اگر صارف اب آپ اور پھر دورہ
اب یا 5 منٹ سے ایک منٹ آتا ہے کیونکہ اب
وہ کسی دوسرے لنک پر کلک کرنے سے پہلے ان کے وقت لگے
پی ایچ پی کی اس بات کا یقین کرنے کے لئے کہ جو کچھ بھی تم اس سیشن superglobal میں ڈال دے گا
ایک منٹ یا 5 منٹ پہلے وہاں اب بھی جب صارف کی واپسی ہو جائے گا.
اور ہڈ کے نیچے یہ superglobal کی راہ کی طرف سے لاگو کیا جاتا ہے
ان چیزوں کوکیز کو فون کیا، لیکن اب کے لئے، یہ صرف ایک تجرید ہے
اس طرح کی خریداری کی ٹوکری کے پروگرام کے برابر کی جس کے تحت ہے.
جو کچھ بھی تم، پروگرامر، اس میں ڈال دیا
superglobal ساہچری سرنی میں سے کچھ بڑی تعداد منٹ بعد ہو جائے گا
جب تک کہ آپ اسے حذف یا جب تک صارف اپنے براؤزر مکمل طور پر علیحدہ ہے.
>> چلو کس طرح یہ چیز اصل میں استعمال کیا جاتا ہے کی ایک مثال کے طور پر ایک نظر ڈالیں.
کوڈ کے آج کے ٹکڑوں کے درمیان counter.php میں
ہم نے مندرجہ ذیل لائن ہے.
اس فائل کے شروع میں ہم نے نیلے تبصرے، جو اب کے لئے uninteresting کر رہے ہیں کا ایک گروپ ہے.
لیکن ہم 13 لائن میں ایک نئی سطر میں ہے،
session_start ہے، اور یہ کہ اصل میں بالکل وہی جو وہ کہتی ہے.
یہ سیشن شروع ہوتا ہے.
یہ آپ کو قابل بناتا ہے کہ بڑے superglobal _session ڈالر کو استعمال کرنے کے لئے، اور یہ اس کے طور پر کے طور پر آسان ہے.
اب، اگر ہم 16 لائن پر دیکھنے کے لئے آگے بڑھنے، معلوم کرنا جو اس ویب کے صفحے پر کیا جا رہا ہے کرنے کی کوشش کریں.
اگر (isset ($ _SESSION ["انسداد"]) تو آگے بڑھو
انسداد کے متغیر میں دکان اور، چھوٹے انسداد،
$ _SESSION ["انسداد"].
یہ نامی ایک مقامی انسداد متغیر قرار دیا ہے
اندر جس کا یہ جو بھی superglobal کے اندر ہے اس کی ایک کاپی ڈال رہا ہے
مقام سے ملاقات کی "انسداد سیشن."
دوسری صورت میں، بظاہر، اس چھوٹے سے مقامی متغیر انسداد 0 initialized ہے.
>> لیکن پھر ایک چند لائنوں کے بعد 26 نوٹس کے انسداد کے سیشن کے نقل
اس کے کلیدی، ایک نئی قدر تفویض کیا ہے جس سے اس کی موجودہ قیمت کے علاوہ 1 ہے ہے.
مختصر میں، اس فائل کو اپ ڈیٹ لگتا ہے
ایک کاؤنٹر ہے کہ سیشن superglobal کے اندر محفوظ ہے
1 کی طرف سے incrementing، لیکن یہ سب سے پہلے گزشتہ قیمت کے ایک کاپی کو برقرار رکھتی ہے
ایک مقامی متغیر میں ذخیرہ کرنے کی طرف سے ملاقات کی انسداد ڈالر،
اور پھر یہاں نیچے چلو دیکھتے ہیں کیا رہتا ہے.
یہ پتہ چلا ہے یہ بہت زیادہ ہے صرف HTML.
اس صفحے کے سب سے نیچے دیئے میں ہم 37 لائن میں دیکھتے ہیں کہ میں اس سائٹ کا دورہ کیا ہے
تو بار انسداد تعداد، ایک جوڑے کی دلچسپ خصوصیات یہاں ہے.
ایک، یہ واضح طور پر ایک متغیر ہے، لیکن یہ صرف ڈال کافی نہیں ہے
اپنے HTML کی وجہ سے کورس کی جسم میں انسداد ڈالر
اگر وہ وہاں صرف اپنے HTML پی ایچ پی کے درمیان ہے مان لیتے ہیں کہ صرف HTML ہے جا رہا ہے.
آپ لفظی ڈالر کے سکرین پر چھپا رکھا جائے انسداد کرنا چاہتے ہیں.
>> بلکہ اس کی بجائے پی ایچ پی موڈ میں گر کر
نحو کے اس ٹکڑے کے ساتھ ہم ایک قیمت کو متحرک طور پر یہاں داخل کر سکتے ہیں
روح میں بہت جو ہم سے آخری بار کیا اسی طرح
ڈور میں اقدار داخل.
اصل میں، یہ صرف کچھ اس طرح لفظی کہنے کے لئے ایک آشلپی سنکیتن ہے،
پرنٹ کریں (انسداد ڈالر) بھی یا printf (کاؤنٹر٪ S،) جیسے کچھ
یا اس سے بھی، جیسا کہ آپ آن لائن یا درسی کتابوں میں دیکھا جا سکتا ہے
ہے کہ پی ایچ پی میں ایک تقریب سے ملاقات کی گونج ہے
جس میں ایک ہی بات کرتا ہے، اور ان میں سے سب صرف اب winded طریقے ہیں
کہنے کی <=؟
اس ایک معاملے میں آپ پر ڈال کرنے کی ضرورت نہیں ہے
سوالیہ نشان کے بعد لفظ پی ایچ پی.
اس کے لئے آشلپی سنکیتن ہے، پھر جو ہم نے ابھی دیکھا ایک لمحے پہلے
جو کچھ قدر گونج رہا ہے.
>> چلو دیکھتے ہیں اصل میں اس کا کیا نتیجہ ہے.
کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ہمارے counter.php فائل میں جانے دو،
ہم دیکھتے ہیں اور یہ کہ ڈیوڈ کوڈ کے ساتھ وہاں کھیل کی طرف سے ایک غلطی کر دی گے.
چلو طے کر وہ جو کچھ بھی خراب
اور غلطی وہاں لگتا ہے، گئے 37 لائن پر ہے.
اس صفحے کے سب سے اوپر کے مطابق میں نے اس سائٹ کا دورہ کیا 0 بار.
چلو، آگے اب جاؤ، اور براؤزر کے سب سے اوپر دیئے گئے پر کلک کریں
آئکن کو دوبارہ لوڈ کریں، اور میں دوبارہ لوڈ کریں پر کلک کریں،
اور اب میں نے سائٹ 1 وقت، 2، 3، 4، 5، 6، 7، 8 کا دورہ کیا ہے.
اور یقینا، اگر ہم اس صفحے کے منبع پر دیکھیں اصل منبع کوڈ کو تبدیل کر رہا ہے،
اور کسی بھی پی ایچ پی کی مکمل غیر موجودگی کو محسوس کریں، اور وہ اس لئے کہ
پی ایچ پی کوڈ کا تعین کیا گیا ہو یا سرور سائیڈ کی تشریح کی جاتی ہیں،
اور تو اس کا مطلب ہے کہ پی ایچ پی کی سکرپٹ کی پیداوار ہے جو بالآخر براؤزر کو بھیجا ہے،
جو کہ اس معاملے میں کچھ خام HTML اور کچھ خام متن ہے.
یہاں کیا ہو رہا ہے؟
>> ٹھیک ہے، میں کوڈ کے نسبتا چند لائنوں کے ساتھ ذخیرہ کرنے کے قابل ہوں
مسلسل ہم کئی سیکنڈ کے دوران، یا اگر کافی وقت تک انتظار کیا،
منٹ، یہاں تک کہ گھنٹے، ایک طریقہ ہے کہ HTTP کرتا ہے میں کچھ قدر
سٹیٹ فل لگتا ہے جیسے ہم نے برقرار رکھا ہے
سرور سے اس سلسلے، اور یہ صرف یاد کیا میں اس سے کہا کہ آخری بار ہے،
لیکن حقیقت میں پیچیدگی کی ایک پوری چڑھانے ہڈ کے نیچے جانے
کوکیز کہ پی ایچ پی مجھے یہ وہم دینے کے قابل ہے کو شامل
اس خریداری کی ٹوکری کی طرح خصوصیت.
اب کے طور پر، ایک چھوٹی سی مثال ہے جہاں ہم صرف ایک عددی ذخیرہ کرنے کر رہے ہیں
لیکن اس کو نمایاں کریں واپس آنا بڑی قدر کی
ہم پیچیدہ منصوبوں کے بارے میں بات کب شروع،
ان کے درمیان مسئلہ 7 مقرر کیا ہے.
یہ آپ کی آخری CS50 میں قائم مسئلہ ہے.
مجھے پتہ ہے، یہ اتنی دکھی ہے، لیکن کیا آپ کو تلاش کر لیں گے یہ ہے کہ ہم یہ نتیجہ اخذ جا رہے ہیں
اصل میں تبدیل کرنے کے کی طرف سے سمسٹر کے اس حصے
C کے سیاق و سباق سے بات کو یقینی طور سے پی ایچ پی کے تناظر
لیکن جب اسی بنیادی استعمال کرتے ہوئے
ہم نے کچھ وقت کے لئے کے بارے میں بات کی ہے.
>> 7 pset کے ساتھ مقصد CS50 خزانہ کو لاگو کرنے کے لئے ہے،
جس میں یاہو خزانہ یا گوگل خزانہ کے اپنے ورژن ہے
یا اس سے بھی Etrade.com جس میں آپ کو کرنے کی صلاحیت ہے
دیا علامات کے لئے اسٹاک کی قیمتوں میں نظر آتے ہیں، لیکن اس سے بھی اس سے زیادہ
آپ کو "خریدنے" اور "فروخت" اسٹاک کرنے کی صلاحیت ہے
کہ اس ہوم پیج کے طور پر مختلف سٹاک ایکسچینجز پر ٹریڈ کی جاتی ہیں
یہاں سے پتہ چلتا ہے، جو واقعی میں کس حد تک ہم نے شروع کیا ہے ہے
آپ کے لئے مسئلہ سیٹ، آپ کو ایک لاگ ان کی قسم ہے جو کہ ایک صارف کا نام اور پاس ورڈ کے لئے پوچھ رہی ہے ہے.
یہ ایک جمع کرائیں بٹن ہے، لیکن اس کے بعد، جیسا کہ ہم آخر میں نظر آئے گا،
ہے وہاں کچھ بھی نہیں واقعی ہڈ کے نیچے ابھی تک وجہ
کے لئے آپ کو نئے صارفین کو رجسٹر کرنے کی صلاحیت کو لاگو کرنے کے لئے رہتا ہے،
اسٹاک کو خریدنے کے لئے، اسٹاک فروخت کرنے کی صلاحیت،
اصل تک موجودہ اسٹاک کی قیمتوں کو دیکھو.
>> اور حقیقی دنیا کے طور پر یقینا یہ ممکن طور پر ہو سکتا ہے کیونکہ ہم نے گا
کے کوڈ کا ایک تھوڑا سا شامل ہے کہ آپ کو ایک تقریب کے ساتھ اجازت دے گا
یاہو خزانہ، جس wonderfully مفت دستیاب اعداد و شمار کرتا ہے سوال
اسٹاک اسٹاک کی علامت یا ٹکر کی علامت کی بنیاد پر کی قیمتوں کو دیکھ کرنے کے لئے،
اور آپ دن کے موجودہ اسٹاک کی قیمت واپس ملتا ہے.
واقعی میں آپ دیکھ رہے ہیں اس مخصوص pset میں ڈیٹا ہو جائے گا
کے بارے میں حقیقی دنیا کے طور پر کیونکہ یہ حاصل ہے کہ آپ واقعی interfacing رہے ہیں کر سکتے ہیں
حقیقی دنیا اسٹاک، حقیقی دنیا کی قیمتوں کے ساتھ،
ہم دیکھتے ہیں اور کتنی رقم آپ کو شاید کر سکتے ہیں کریں گے
خود اپنے مسئلے کے سیٹ کے ساتھ کھیلنے کے اگلے کئی دنوں کے دوران.
>> لیکن کچھ ہے جو یقینی طور پر زیادہ پیچیدہ ہے ڈیزائن کرنے کے لیے لشکر طیبہ پہلے مرحلے قائم
counter.php سے، جو Frosh IMS مثالیں میں سے کسی کو اس طرح دور سے زیادہ پیچیدہ ہے،
دو اور یہاں چند paradigms متعارف کرانے کی کوشش ہے جو ہمیں کرنے کی اجازت دے
7 pset دونوں کے لئے شاید آپ کی آخری منصوبہ کے لئے اگر آپ کچھ ویب کی بنیاد پر کرتے ہیں
اپنے کوڈ کو اچھی طرح منظم رکھنے کے لئے خود کو سمجھدار رکھنے
اور تعاون کی طرف ایک قدم ہے، لینے کے لئے کہ CS50 حتمی منصوبے میں
یا اگر آپ کو مستقبل میں کچھ پروگرام کو جاری سے باہر.
اس عام ڈیزائن پیرا ہے
کمپیوٹر سائنس میں سافٹ ویئر کی ترقی میں اور عام طور پر
MVC، ماڈل نقطہ نظر کنٹرولر کے طور پر جانا جاتا ہے،
اور یہ ایک پاگل مخفف ہے جو کہ ایک بہت اچھا خیال کی وضاحت ہے،
جس میں ایک پروگرام کے مختلف پہلوؤں کی علیحدگی ہے،
خاص طور پر الگ الگ منطق یا ایک ویب سائٹ کے کاروبار کی منطق رکھنے
کہ کچھ ایسی باتیں شامل تو
افعال بلا اور ڈیٹا بیس querying طرح
آپ کے HTML کے درمیان نہیں ہوتا ہے
لیکن علیحدہ فائلوں میں، بلکہ یقینا یہ ایک فائل ہے
عام طور پر ہے کہ آپ نے کنٹرولر کو بلایا ہے
جو واقعی میں آپریشن کے پیچھے دماغ ہے، اور ہم ایک مثال کے طور پر دیکھیں گے
صرف ایک لمحے میں اس کے.
>> ایک ماڈل ہے جو کوڈ پروگرامنگ کر رہا ہے
کہ آپ کے ڈیٹا بیس سے بات کہ یاہو خزانہ اور طرح سے بات کرتا ہے
اور پھر MVC V، خیالات،
چیزیں جمالیات، فائلوں کو اصل پر مشتمل سے متعلق تمام
اپنے HTML، شاید آپ کا سی ایس ایس اور اس طرح ہے.
یہاں خیال، کے طور پر اس تصویر سے پتہ چلتا ہے، یہ ہے کہ کنٹرولر
فائل ہے، جیسا کہ ہم جلد ہی کے طور پر آپ کو 7 pset میں خاص طور پر نظر آئے گا دیکھیں گے
کہ یہ دنیا ان کے ویب براؤزر کے ذریعے بات کرتا ہے.
وہ فائل جو عوامی انٹرنیٹ پر ملاحظہ کيا جا چکا ہو جاتا ہے،
لیکن کنٹرولر ممکنہ طور پر ایک ماڈل سے بات
جس میں ایک یا ایک سے زیادہ دیگر فائلوں ہے کہ اعداد و شمار کے متعلقہ کوڈ پر مشتمل ہے،
کوڈ ڈیٹا بیس اور طرح سے متعلق ہے، اور پھر اس سے بات
کنٹرولر ایک یا ایک سے زیادہ دوسرے فائلوں خیالات کے طور پر جانا جاتا ہے،
جس میں ایک ویب کے صفحے کے جمالیات قسم کے سانچے ہیں،
جو ان پٹ کے طور پر کچھ ڈیٹا لے سکتے ہیں، لیکن دن کے اختتام پر
صرف ایک نقطہ نظر کے اندر منطق ہے کہ ڈیٹا کی انجام ہونا چاہئے،
ایک لوپ پر کی iterating اور اصل میں کچھ توکنا
ترجمہ HTML کی بنیاد پر پی ڈی ایف کی طرف یا اس سے بھی کچھ.
>> MVC کے بارے میں اچھی بات ہے یہ ہے کہ آپ کو مختلف خیالات کر سکتے ہیں
کی بنیاد پر آلہ کی قسم، فائل ہے کہ اصل میں آپ کی شکل کی قسم کی بنیاد پر
صارف کو ظاہر کرنے کے لئے چاہتے ہیں.
چند آہستہ زیادہ پیچیدہ اور اچھی طرح سے ڈیزائن کیا گیا مثالیں پر ایک نظر ڈالیں
0 یہاں ورژن سب سے پہلے شروع ہونے والے کی طرف سے.
آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور آج ہماری MVC ڈائریکٹری میں کھول دو
ایک فائل میں 0 ڈائریکٹری میں index.php سے ملاقات کی.
نوٹس یہ ایک سپر آسان اور بہت underwhelming ویب سائٹ ہے
CS50 کے لئے ایک سر ورق 0 ورژن کی طرح ہے،
نوٹس اور ہم کس طرح لیکچر میں ایک لنک ہے، ہم نصاب میں ایک لنک ہے،
اور اگر میں لیکچر نوٹس لنک کی پیروی کرتے ہیں کہ یو آر ایل
اوپر lectures.php تبدیل کرنے جا رہا ہے.
اگر میں پھر ہفتہ 1 نوٹس لنک کی پیروی کہ week1.php URL تبدیلیاں.
ایک منصفانہ سادہ پدانکردوست ساخت کو یہاں لگتا ہے.
>> دو کس طرح یہ رکھی ہے ہڈ کے نیچے ایک فوری نظر ڈالیں،
اور بیشک اگر میں index.php میں دیکھو، یہ بہت آسان ہے.
اصل میں، اگرچہ میں نے یہ ایک پی ایچ پی فائل کو فون کیا کوئی اصل پروگرامنگ کوڈ ہے.
ایک تبصرہ ہے کہ میں نے پی ایچ پی میں یہاں صرف لکھا صارف ختم نہیں ہوتا یہ دیکھ کر ہے.
بالکل پہلے کی طرح کچھ، جو کہ پی ایچ پی ٹیگز کے درمیان میں ہے
ہو جاتا ہے یہاں تک کہ اگر یہ ایک تبصرہ ہے، اور ایک تبصرہ کی تشریح
صرف کا مطلب ہے کہ اس دن کے آخر میں دور پھینک نہیں اصل میں
تاکہ براؤزر کو بھیج، یہاں سب کچھ جمالیات ہے.
اگر میں کھول اسی طرح lectures.php یہ بھی صرف ایک مشکل کوڈت فائل ہے.
یہ کچھ کہا ہوتا ہے پی ایچ پی،
لیکن یہ واقعی صرف، HTML اور week1.php، week2.php ہے.
اسی طرح صرف مارکاپ ہیں، تو اس ڈیزائن کی کوتاہیوں کا ایک گروپ ہے.
ایک، یہ کاپی / پیسٹ کی ایک بڑی رقم ہے.
اگرچہ صرف ایک چیز جو ان فائلوں میں تبدیل ہے بے ترتیب فہرست ہے،
لی ٹیگز، میں باوجود DOC قسم، HTML، سر،
عنوان، جسم، قریب HTML اور زیادہ
ہر ایک فائل میں، جس کا مطلب یہ ہے کہ اگر میں نے کبھی چاہتے ہیں کی تشکیل نو
اس ویب صفحہ یا اس سے restylize میں جانا ہے اور تبدیل کرنا ہوگا
ان تمام فائلوں کو دستی طور پر یا کچھ بڑے پیمانے پر کے ساتھ کی جگہ تلاش کریں.
>> 1 ورژن میں یہاں ایک ہوشیار، اب سوچ ڈیزائن کی طرف ایک قدم
کے مطابق جس کے تحت آپ کے وزٹرز کا ریکارڈ رکھا پڑھا کہ ہم تو شامل ہے کہ آپ کے ساتھ ادا کر سکتے ہیں ہے
یہ گھر نوٹس میں زیادہ آرام سے ہے کہ ہم یہاں ہیں
اس سائٹ 1 ورژن میں فائلوں کا خلاصہ،
اور اسے محسوس ہوتا ہے کہ میں نے اس سے لیا ہے صلی اللہ علیہ وسلم خود فیکٹر ہے
کچھ عام کوڈ header.php اور footer.php.
چلو، ان میں سے پہلے کے اندر اندر کیا ہے پر ایک نظر لے.
Header.php واقف لگتا ہے،
نوٹس لیکن جہاں اس سے دور ہٹو کرتا کاٹ؟
اس وقت 19 لائن کے بعد، تو وہ سب کچھ ہے جو ایک عام بات تھی
فائلوں index.php، lectures.php سے
week1 اور گزشتہ مثال سے week2.php.
کاپی اور کٹ سب کچھ ہے جو ان تمام فائلوں کا ایک عام بات تھی جو میں نے کیا تھا،
ایک علیحدہ ہیڈر فائل میں رکھ، اور اسی طرح footer.php میں
کیا میں ایک ہی اصول لاگو ہوتے ہیں جس کے تحت صرف دلچسپ لائنز
footer.php میں ان دو، جسم اور قریبی HTML ہیں.
>> لیکن کیا اس کا مطلب اب نئے ورژن میں ہے
index.php نوٹس کتنا آسان ہو سکتا ہے.
دی، ایک خفیہ سا لگ تھوڑا کم بدیہی
اوپر سے نیچے کی پیروی کرنے کے لئے، لیکن میرے خدا، اس فالتوپن کے سب اب چلا گیا ہے.
ہم آپ کو پی ایچ پی کی لفظی کہا جاتا اوپر کی ضرورت ایک تقریب کا استعمال کرتے ہوئے کی ضرورت ہوتی ہے،
جو کہ بہت یاد تازہ ہے، یاد، # C کے طریقہ کار شامل ہیں.
ہم نے سب سے اوپر header.php کی ضرورت ہوتی ہے.
ہم نے نیچے دیے گئے footer.php کی ضرورت ہوتی ہے، اور صرف ایک چیز جو مختلف ہے
یا اس فائل کے بارے میں خاص مواد ہے کہ اس منفرد ہونا مراد ہے.
اگر میں میں، کا کہنا ہے کہ، lectures.php تو جاؤ، ایک ہی اصول لاگو ہوتا ہے.
ایک بار پھر، اوپر کچھ تبصرے، لیکن پھر میں ہیڈر کی ضرورت ہوتی ہے، فٹر کی ضرورت ہوتی ہے،
اور اس کے درمیان میں صرف ایسا مواد ہے جو اصل میں تبدیل کر دیا گیا ہے ہے.
اور اگر ہم نے 1 ہفتہ اور ہفتہ میں دیکھا، ہم دیکھنا چاہتے ہیں 2
کہ ایک ہی اصول گیا تھا وہاں ہے.
ٹھیک ہے، ہم وہاں بہت نہیں کر رہے ہیں کیا ہے.
>> 2 ورژن میں دیکھو، جو اسی طرح کی ایک ساخت ہے، لے
لیکن اب محسوس میں کچھ اور شروع کی ہے.
لائن 10 میں میں نے helpers.php متعارف ہے،
جو بظاہر مدد گار کے افعال پر مشتمل ہے.
ایک مددگار کی تقریب میں عام طور پر ایک نسبتا مختصر تقریب ہے
ہے کہ آپ کو آپ کو مختلف مقامات میں مدد لکھنے،
اور دیکھتے helpers.php کے اندر کیا ہے.
اس صورت میں، ایسا لگتا ہے جیسے 2 افعال ہیں.
ہمارے کیوب مثال کے طور پر کے ساتھ دوسرے دن سے یاد
آپ پی ایچ پی میں اپنے اپنے افعال کی وضاحت، اور کر سکتے ہیں اب میں نے کیا ہے یہ ہے میں نے
بیان کیا کہا جاتا فوٹر کو فراہم کریں اور ہیڈر فراہم افعال
جن میں سے پہلے ایک پیرامیٹر لیتا ہے اعداد و شمار سے ملاقات کی،
ڈیفالٹ جس کی قدر خالی صف، جیسا کہ وہاں کی تجویز پیش کی ہے،
اور ہم اس اصل سے بھی زیادہ succinctly پی ایچ پی کے تازہ ترین ورژن میں لکھ سکتے ہیں
کھلی مربع بریکٹ کہہ کر، مربع بریکٹ بند کر دیا.
0 سائز کے ایک خالی صف باوجود لیکن ایک صف کا مطلب ہے.
>> یہ نچوڑ تقریب اس میں تھوڑا خاص ہے
کیا اس سے فرق پڑتا ہے کہ یہ اس کی دلیل کے طور پر ایک ساہچری سرنی لیتا ہے
0 یا اس سے زیادہ کلیدی قدر جوڑوں ہے، اور اگر آپ FOO کی ایک چابی ہے
اور نچوڑ تقریب کی بار کی قیمت
ایک ایسی صورتحال ہے جس میں اب 11 لائن کی تخلیق کرتا ہے،،
آپ نے ایک مقامی بلایا FOO ڈالر جن کی قیمت بار ہے متغیر ہے.
اور، اگر آپ ڈیٹا صف میں زیادہ چابیاں اور اقدار کے تھے
اسی طرح وہ مقامی گنجائش میں کی جائے گی نکالا
یا نام کی جگہ تاکہ footer.php اور
یہاں نیچے اسی خیال تاکہ header.php
ان متغیرات کو رسائی حاصل ہے.
سچ تو یہ ہے، مجھے پھر سے header.php کھول
اور اب کیا یہ اس ورژن میں کی طرح لگتا ہے پر توجہ اپنی طرف متوجہ.
>> بجائے ہر صفحے کے لئے عنوان کے طور پر مشکل CS50 کوڈنگ
نوٹس تحرک یہ اب ممکن ہے.
آن لائن 5 میں ایک عنوان متغیر گونج رہا ہوں،
لیکن پہلے میں کہ عنوان متغیر کو کہا جاتا htmlspecialchars ایک تقریب میں گزر رہا ہوں.
ایک تقریب کے لئے ایک پاگل کا نام، جب تک یہ ہے، لیکن یہ واقعی کرتا ہے کہ وہ کیا کہتی ہے.
یہ اس امر کو یقینی بناتی ہے کہ کوئی خاص حروف
سٹرنگ جو میں منظور کر دیا گیا ہے میں مناسب طریقے سے HTML فرار ہو گئے ہیں.
یہ اصل میں کچھ سے گریز کرنے کا ایک راستہ پار سائٹ سکرپٹ حملے ملاقات کی ہے
کسی جس کے تحت کر سکتے ہیں maliciously یا اتفاقی طور پر
آپ کی ویب سائٹ میں ان کے اپنے HTML انجیکشن
کسی نہ کسی شکل میں چسپاں کر کے، مثال کے طور پر،
کچھ کہ آپ خاص طور پر جاوا سکرپٹ کے کوڈ بہت نہیں تھے توقع،
جیسا کہ ہم ہفتے میں ایک یا دو بار میں کے بارے میں بات کریں گے.
>> یہ اب header.php، یہ ایک نقطہ نظر ہے
احساس ہے کہ یہ آپ خوبصورت کچھ ڈیٹا سیٹ کے مواد کو دیکھنے کے لئے کی اجازت دیتا ہے ہے.
لیکن خاص طور پر، یہ ایک ٹیمپلیٹ ہے.
یہ ایک بلیو پرنٹ کی طرح جو ہم ہر صفحے کے ہیڈر کی طرح دیکھنا چاہتا ہے،
لیکن کچھ تحرک ہے کہ ہم کو متحرک طور پر عنوان داخل کرنا چاہتے ہیں
عنوان متغیر کی بنیاد پر
کہ نکالا جب ہم نے فون کیا، پھر گیا تھا،
رینڈر ہیڈر تقریب.
اب، اگر ہم رینڈر فوٹر میں دیکھا، وہاں اصل میں اس حق کی زیادہ نہیں استعمال
کیونکہ footer.php میں کوئی قسم تحرک ہے.
وہاں ہو سکتا ہے، لیکن اس وقت 2 ٹیگ کا ایک مشکل کوڈت فہرست ہے،
لیکن ایک ہی خیال لاگو ہوتا ہے، تاکہ اصل تجویز کیوں
کیا ہم وقت رینڈر ہیڈر اور رینڈر فٹر تقریب کے ضائع کریں؟
مجھے بجائے اب 3 ورژن میں،
اور میں مددگار میں 3 ورژن میں اس سے بھی زیادہ آسان بنانے کا فیصلہ کیا ہے.
>> مجھے ایک رینڈر تقریب ہے.
مجھے یہ ایک اور دلیل لے، اس وقت قرار دیا سانچے،
جس کو ایک سانچے کے نام پر ہونا چاہیے،
اور پھر میں presumptuously سلسلہ بندی کرنا پی ایچ پی کی ہے کہ متغیر کی قدر کرے گا.
اور پھر اگر یہ میں foo.php، bar.php، یا header.php اور footer.php موجود ہے،
تو مجھے آگے جانا ہے اور متغیر ڈیٹا کو ہٹا دیں جا رہا ہوں
اور پھر اس راستے کی ضرورت ہوتی ہے.
دوسرے الفاظ میں، اب یہ استعمال کرتے ہیں، اگر میں نے index.php کھولتے
نوٹس کہ میں رینڈر کے ہیڈر کو فون نہیں کرتے.
میں ابھی فون دینا، لیکن میں نے ہیڈر کے حوالے سے کہا قدر میں گزر
بنانے واضح جس سانچے میں واقعی میں لوڈ کرنے کے لئے کرنا چاہتے ہیں.
>> پھر یہاں توجہ ہے کہ میں کیا کر رہا ہوں.
میں عنوان کے کو متحرک طور پر ایک اہم میں گزر رہا ہوں،
CS50 کی قدر بھی اس، جیسا کہ ہم نے پہلے دیکھا،
مزید succinct پی ایچ پی کے تازہ ترین ورژن میں بنایا جا سکتا ہے
میں مربع بریکٹ کے ساتھ صف تقریب کہاں جگہ لے سکتے ہیں،
جو میں نے تجویز بھی زیادہ پڑھنے کے قابل ہے اور یقینا
ایک چھوٹا سا آسان ٹائپ.
اور ظاہر کی،، کے نیچے دیے گئے رینڈر فٹر کال کے ساتھ
ہم بالکل ایک دوسری دلیل میں گزر رہا ہے، کوئی ساہچری سرنی کی زحمت نہیں کرتے،
کیونکہ وہاں کچھ بھی نہیں کہ فٹر کے متحرک اندر ہے.
یہ صرف HTML کے لئے کچھ قریبی ٹیگز ہے.
اچھا، ہم واقعی چیزیں صفائی یہاں کے لئے اقدامات کر رہی کر رہے ہیں،
لیکن مجھے 2 حتمی مثالیں کھول.
یہ ایک، 4 تعداد کا نوٹس ہے کہ میں نے ایک ہوش اب فیصلہ کیا ہے
آخر میں میری فائلوں کچھ تنظیمی ڈھانچے کا استعمال کرتے ہوئے کی طرف سے گزشتہ مثال وسلم کو بہتر بنانے کے.
>> نوٹس ہے کہ اس کے خلاصے میں یہ آپ کے وزٹرز کا ریکارڈ رکھا پڑھنے میں، میں متعارف کرایا ہے
ایک ڈائریکٹری اور ایک سانچے ڈائریکٹری شامل ہے
جن کے مواد چیزوں میں شامل کرنا چاہتے ہیں کے لئے جا رہے ہیں
اور سانچوں کے کہ میں بالترتیب فراہم کرنا چاہتے ہیں.
یہ سچ میں آپ کے وزٹرز کا ریکارڈ رکھا گدا ہے اور چیزوں کو صاف رکھنے کے لئے کی کوشش کر رہے ہیں،
متعلقہ فائلوں کو ساتھ رکھنے کے لئے، لیکن آخر نتیجہ
ہے کہ اب ہم تھوڑا tidier سیٹ اپ ہے، لیکن اب ہم یاد ہے
میں مثال کے طور پر، index.php،
جب ہم نے فائل helpers.php کی ضرورت ہوتی ہے
اب ہم اس کے ذریعے / helpers.php بھی شامل ہے کی ضرورت ہے
کی بجائے صرف helpers.php کہہ رہے ہو کیونکہ اب یہ ایک سب ڈائریکٹری میں اصل ہے.
اب، ان مثالوں اور کچھ دوسرے میں آپ کو ایک طرف ایک دیکھ لیں گے،
طرح کی ضرورت کام کرتا ہے، ایک بار کی ضرورت ہوتی ہے.
اصل میں ایک تقریب خود فون شامل ہے، اور وہ سب کا رویہ تھوڑا سا مختلف ہے.
میں یہاں کا کہنا ہے کہ ایک بار سپر واضح بنانے کے لئے کی ضرورت ہے کہ میں نے صرف ان کرنا چاہتے ہیں
مددگار اپنے منصوبے میں ایک بار بھی شامل ہیں.
لیکن اگر میں ہوشیار ہوں اور اگر میں نے اصل میں میری منطق کے ذریعے مناسب طریقے سے سوچ رہا ہوں
یہ بھی صرف کافی اوپر کی ضرورت
اتنی دیر میں اپنے طور پر کہ ایک ہی فائل اتفاقی طور پر نہیں دوسری جگہوں پر کی ضرورت ہوتی ہے.
اصل میں، یہ کام تو استعمال کرنے کے تھوڑا زیادہ کارگر طریقہ ہے
تو ایک بار کی ضرورت ہوتی ہے، میں نے اسے ٹرم کر دیں. صرف کی ضرورت گے.
>> چلو، مزید ایک قدم لے.
اب یہ آخری مثال کے طور پر، ورژن 5، اس سے بھی صاف فولڈر کے تنظیمی ڈھانچے ہے.
نوٹس میں یہاں کیا کیا ہے فی کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے یہ آخری ورژن میں پڑھا ہے
اب میں اپنے HTML ڈائریکٹری ہے، جس میں اس وقت لیا ہے،
لیکن اب وہاں کے اندر صرف index.php lectures.php، ہے،
week1.php اور week2.php.
شامل ہیں ڈائریکٹری اب HTML ڈائریکٹری کے ساتھ ساتھ رہتا ہے،
تو ایک بھائی کے طور پر ایک ہی سطح پر، تو بات کرنے کی.
تو سانچے فولڈر ہے.
اہم یہاں takeaway ہے، اور میں نے تھوڑا سا ڈھانچہ متعارف کرائی ہے،
لیکن اہم خصوصیت اب صرف وہی فائلیں
جو ویب قابل رسائی، عوامی پتہ کرنے کی ضرورت ہے
عوامی انٹرنیٹ پر ایک یو آر ایل کی طرف سے اپنی ایچ ٹی ایم ایل ڈائریکٹری میں ہیں.
>> اس دوران دوسرے، فائلیں، helpers.php، footer.php،
header.php، arguably شاید زیادہ حساس ہوتے ہیں،
شاید مددگار اصل میں کچھ صارف نام اور پاس ورڈ یا کچھ دانشور ہے
میری جائداد، کام میں واقعی میں دنیا کو دیکھنے کے لئے چاہتے ہیں بھی اتفاقی طور پر اگر نہیں،.
عوامی HTML ڈائریکٹری سے باہر رکھنے کے لئے یہ اچھی پریکٹس ہے
کسی بھی فائلوں کو خود کی ضرورت نہیں ہے، عوامی ہونا.
آپ کو اس صورت میں جب دیکھ مثال کے طور پر کیا، ہے،
HTML ڈائریکٹری index.php فائل،
نوٹس ہم صرف تھوڑا زیادہ وقت احتیاط کی ضرورت ہوتی ہے پر ہے
یا ایک بار اس فائل کی ضرورت ہوتی ہے.
میں نے سب سے پہلے کرنے کی ضرورت ہے .. والدین کے ڈائریکٹری میں جانے کے لئے،
تو / / helpers.php بھی شامل ہے
واپس فائل حاصل کرنے کے لئے ہے کہ میں پرواہ ہے کودو.
>> تو MVC پر کوئی بھی سوال
یا یہ نسبتا آسان اس اوتار؟
اور مجھے یہ واضح ہم کافی پر تھوڑا سا توجہ مرکوز
یہاں V، خیالات اور ان ٹیمپلیٹس میں سے فیکٹرنگ.
ہم C سے M اصل میں نہیں ہے ابھی تک ممیز.
اصل میں، وہاں واقعی کوئی یہاں M ہے، اور یہاں تک کہ ہمارے C
کنٹرولر، وہ سب زیادہ نہیں کر رہی ہے، لیکن آپ کو بہت کچھ مل جائے گا
MVC سے ان 2 خط میں دونوں سے واقف
بلکہ، آپ C کے ساتھ زیادہ واقف ملے گی
MVC مسئلہ 7 سیٹ ہے، تو اس افق پر اس سے زیادہ ہے کے لئے میں.
سوال؟
اصل میں نہیں ہے یہاں ایک ہے.
>> ٹھیک ہے، چلو اب آج کے لئے دوسرے اور آخری موضوع پر منتقل.
یہ ایک ڈیٹا بیس متعارف کرانے ہے.
اس بات جب تک ہم ذخیرہ کرنے کے ڈیٹا کی چند طریقوں لیا ہے.
ہم متغیر استعمال کیا جاتا ہے.
ہمارے C فائل میں واپس، I / O بحث ہم نے متن فائلوں کا استعمال کرتے ہوئے شروع کر دیا
اور fprintf طرح فائلوں کا استعمال کرتے ہوئے، اور پھر ہم نے بھی شروع کر دیا
CSV کے بارے میں بات کر تھوڑا سا، علامت سے علیحدہ اقدار فائلوں،
تو ان میں سے ہم سب ڈیٹا ذخیرہ کرنے کی اجازت دی
یا تو غیر مستقل یا مستقل.
لیکن پھر بھی CSVs واقعی تلاش کے لئے موزوں نہیں ہیں
داخل اور خارج کرنا.
یہ واقعی صرف ایک پاگل متن کوما کے ذریعے الگ فائل ہے
صف کی طرف سے صف کی طرف سے صف کی طرف سے صف، اگر ایسا ہے تو آپ کرنا چاہتے ہیں
تلاش کریں کہ فائل سب سے بہتر آپ کر سکتے ہیں واقعی میں لکیری تلاش ہے.
آپ کو فائل کے سب سے اوپر دیئے گئے شروع کرنے کے لئے ہے، پوری میں بات ملاحظہ کریں،
اور سود کی کچھ قیمت کے لئے دیکھو.
اگر آپ کو اس میں شامل کرنے کے لئے کرنا چاہتے ہیں تو آپ ایک ہی بات کرنا پڑے گا،
اس پر iterating اور ایک خاص جگہ میں داخل،
اور اصل میں، آپ کو تلاش منطق خود کرنا ہے.
>> آپ کو ہوشیار ایک CSV فائل کی مماثلت جب تک تم اپنے آپ کو کوڈ لکھنے پیٹرن نہیں کر سکتے.
آپ کو ایک CSV فائل کی فلٹریشن نہیں کر سکتے
جب تک تم اپنے آپ کو کوڈ لکھنے.
یہ اچھا نہیں ہو گا اگر کسی اور کی کوششوں کے سب میں ڈال دیں گے
اصل میں آسان اور اندراج آسان تلاش کرنے کی
منسوخی اور اپ ڈیٹ کرنے اور وغیرہ؟
یہ بالکل وہی جو ایک ڈیٹا بیس ہے.
SQL، تشکیل استفسار زبان، ایک زبان ہے
کہ ہم آج یہاں متعارف کروا رہے ہیں، لیکن یہ بھی کافی قابل رسائی ہے،
اور اس کے کیا ہم واقعی جا رہے ہیں وہ صرف ہے توڑو کے کچھ سب سے زیادہ نمایاں
خصوصیات تو کہ 7 pset کے لئے، اور اگر تم سے کچھ کی بنیاد پر ویب،
آپ کی آخری منصوبہ، آپ خود کا اظہار کرنے کی صلاحیت ہے
ڈیٹا سوالات کے لحاظ سے.
تم تھوڑا سا ذخیرہ کرنے کی صلاحیت ہے یا ڈیٹا کی ایک بہت ہے.
زیادہ تشکیل طرح ہے کہ دن کے آخر میں میں
آپ کی زندگی کو آسان بنانے کی وجہ سے آپ SQL کے ساتھ خود کا اظہار کر سکتے ہیں
بہت زیادہ خاص طور پر، بہت طریقے کے لئے
ڈیٹا کی ایک بڑی فنڈز سے ڈیٹا کی کچھ اپسمچی حاصل ہے.
>> تم نے اس معاملے میں ایک SQL ڈیٹا بیس میں ایک ڈیٹا بیس کے بارے میں سوچنا، واقعی ایکسل کی طرح کر سکتے ہیں
یا نمبر جہاں وہ ایک سپریڈشیٹ ہے
یا شاید ایک سے زیادہ، سپریڈ شیٹ اور کورس کے ایک سپریڈ شیٹ،
قطار اور کالم ہے، اور اس کی وجہ یہ ہے
SQL ڈیٹا بیس معنوں میں سنبندپرک سنبندپرک ہیں
کہ وہ ان میزیں کی شرائط میں ڈیٹا ذخیرہ
قطار اور کالم.
وہ ایک سپریڈ شیٹ کی طرح کچھ کے مقابلے میں اعلی کارکردگی کا مظاہرہ کر رہے ہیں،
اور ایک سپریڈ شیٹ ایک انسان کی طرف سے استعمال کیا مراد ہے.
ڈیٹا بیس ایک پروگرامر کی طرف سے استعمال کیا جاتا مراد ہے
لہذا اس کے خلاف کوڈ لکھنے، ایک ڈیٹا بیس کا اوتار
یا تو کمانڈ لائن ہو جائے گا.
>> وہاں سب سے زیادہ مقبول سنبندپرک ڈیٹا بیس میں سے ایک ہے، پھر سے، ایس کیو ایل،
جو wonderfully مفت ہے، بہت زیادہ کارکردگی کا مظاہرہ، اور یہ وہی ہے جو
فیس بک پر اور کسی حد تک ابتدائی آج بہت اب بھی استعمال کیا جاتا ہے
اس کے اعداد و شمار کے ایک بہت محفوظ ہے، اور ہم ایک لمحے میں نظر آئے گا
نسبتا آسان حکم کا استعمال کرتے ہوئے کہ
ہم ڈیٹا، داخل ڈیٹا، اپ ڈیٹ ڈیٹا کا انتخاب کر سکتے ہیں،
ڈیٹا اور طرح کو خارج کر دیں، لیکن شکر ہے، ایک سے زیادہ صارف دوستانہ انٹرفیس ہے
یہاں صرف ایک سیاہ فام اور سفید فام فوری طور پر ٹائپ سے.
ہم 7 pset کے لئے استعمال کریں گے اور نامی ایک آزاد phpMyAdmin کے آلے سے باہر ہے.
نام اتفاقیہ ہے.
آلہ پی ایچ پی میں لاگو کیا جائے ہوتا ہے،
لیکن ہے کہ بنیادی طور پر غیر متعلقہ ہے.
phpMyAdmin کے بارے میں کارآمد کیا ہے یہ ہے کہ یہ ایک ویب کی بنیاد پر کی افادیت ہے.
ہم اسے آپ کے لئے آلات میں پہلے سے نصب،
اور ایک ڈیٹا بیس میں آپ کو اس کے ساتھ ٹیبل بنا سکتے ہیں،
آپ کو ڈیٹا داخل، ڈیٹا حذف، کر سکتے ہیں اور عام طور پر دیکھ
کافی صارف دوستانہ ماحول میں اپنے ڈیٹا کا.
آپ کے صارفین phpMyAdmin استعمال کرنے کے لئے نہیں کر رہے ہیں.
>> یہ واقعی صرف ایک انتظامی یا ڈویلپر آلہ ہے
، جس کے ساتھ اور آپ کے ڈیٹا کے ارد گرد ڑکیلنا پر دیکھتے ہیں اور اعداد و شمار یہ کس طرح تشکیل
زیادہ خود کو آپ جیسے ایکسل یا نمبر استعمال کر سکتے ہیں،
لیکن یہ visualizing ہڈ کے نیچے جا رہا ہے کا ایک بڑا طریقہ کو ہونے جا رہا ہے
تاکہ آپ کو دلچسپ مسائل کو حل کرنے پر توجہ مرکوز کریں اور اتنا نہیں کر سکتے ہیں
arcane حکم.
ڈیٹا tabularly سٹور ہو سکتا ہے اس کی ایک مثال پر ایک نظر ڈالیں
ایک سنبندپرک ڈیٹا بیس میں.
یہاں ایک مثال ہے.
اب، بدقسمتی سے، phpMyAdmin پھینک راستہ کی طرف بھی غلطی کی کئی الفاظ
اور تم پر گرافکس، لیکن اگر آپ میں اضافہ
ID کالم، صارف کا نام، کالم، اور ہیش کالم،
یہ مؤثر طریقے سے ایک سپریڈشیٹ ہے، لیکن یہ ایک ٹکڑا ہے
آلات کی ایک میز کے اندر
ایک فائل کا استعمال کرتے ہوئے کی ہے کہ ہم آپ کو مسئلہ 7 سیٹ کے ساتھ فراہم کرتے ہیں.
>> خاص طور پر، ہم آپ کو ایک فائل ہے کہ کی نمائندگی کرتا ہے
ایک صارف کے میز، 3 کالم کے ساتھ صارفین پر مشتمل سپریڈ شیٹ،
جن میں سے ایک نے ایک منفرد 1 سے شروع کرتے ہیں اور کیا جا رہا ہے اس کے بعد incremented ID ہے.
دوسرے کالم میں ایک صارف کا نام ہے، اور تم میں سے وہ لوگ جو ہیکر نے
2 pset کے لئے ہیکر ایڈیشن، ان صارف کم از کم نام کے کچھ پہچان سکتا ہے.
دائیں ہاتھ کی طرف پر پاس ورڈ ہیں، لیکن وہ لغوی پاس ورڈ نہیں ہو.
تاکہ وہ اس hashes ہیں، یہ پتہ چلتا ہے
ہے کہ ایک ڈیٹا بیس میں پاس ورڈ کا ذخیرہ کرنے میں ایک بہت ہی برا خیال ہے.
تم سب شاید کچھ ویب سائٹ کے کسی نہ کسی موڑ پر ہے پڑھا
یا کسی کمپنی کا ڈیٹا بیس سمجھوتہ، اور کیا جا رہا ہے تو آپ کو کرنا ہے
اپنا پاس ورڈ تبدیل کرنے کے لئے، آپ چیزوں پر رقوم کی واپسی حاصل کرنے کے لئے کرنے کی ضرورت ہے
کیونکہ کچھ برا آدمی اصل میں اس کے نتیجے کے طور پر آپ کے اکاؤنٹ میں توڑ دیا.
>> واضح متن میں پاس ورڈ کو ذخیرہ کرنے، ایک ڈیٹا بیس میں غیرخفیہ کردہ
مکمل طور پر asinine ہے، اور ابھی تک یہ بہت دل لگی ہے
پھر کچھ بہت اچھی طرح سے جانا جاتا کمپنیوں کے بارے میں پڑھنے کے لئے
بعض اوقات ذرائع ابلاغ میں جس کی ڈیٹا بیس سمجھوتہ کر رہے ہیں،
اور اس حصے مذاق نہیں ہے، لیکن حقیقت یہ ہے کہ ڈیٹا بیس پر مشتمل غیرخفیہ کردہ
پاس ورڈ مضحکہ خیز کوڈ کا ایک لائن کے ساتھ ہے لفظی کیونکہ
آپ اس مخصوص خطرے کے خلاف حفاظت، اور یہ کہ جو ہم یہاں کیا ہے کر سکتے ہیں.
یہاں تک کہ ہمارے جعلی چھوٹے CS50 خزانہ ورژن کے لئے
ہم صرف اچھے کی پیمائش کے لئے پاس ورڈ خفیہ کاری کر رہے ہیں، اور یہ کہ یہ حقیقت
ان تمام پاسورڈز کی شروع سے 1 ڈالر صرف ایک کنونشن ہے.
یہ صرف کا مطلب ہے کہ وہ مرموز یا واقعی hashed ہیں،
جو ایک راستہ خفیہ کاری تقریب کی طرح ہے
آپ کو بلایا MD5 کچھ کے ساتھ اس کے اثرات جس ریورس نہیں کر سکتے ہیں.
>> حقیقت یہ ہے کہ اس کے بعد 50 کا مطلب یہ ہے کہ نمک کی قیمت
50 ایک کے علاوہ ان تمام پاسورڈز کی hashing کے لئے استعمال کیا جاتا تھا.
کورس کے میرا،، جیسا کہ تم وہاں دیکھ سکتے ہیں، HA،
ایک مختلف نمک کا استعمال کرتے ہوئے تھا، تم میں سے وہ لوگ جو تھوڑا تک فسل گیا گیا
شاید 2 ہیکر ہے جو ہمارے استعمال کیا جاتا ہے کا نتیجہ ہے ہو سکتا ہے
وجہ سے دوسروں کے مقابلے میں ایک مختلف ہیش میرے پاس اصل میں ایک ہی ہے
وہاں کسی دوسرے صارف کے طور پر.
اصل میں، اگر آپ کو انتظار کر ان تمام ہفتوں کے باہر تلاش کرنے کے لئے
کیا ان پاس ورڈ پاس ورڈ ہے کہ آپ کو چیلنج کیا گیا تھا نہیں تھی
مسئلہ 2 سیٹ، تو کوئی نہیں بھی مشکل ہیکر ایڈیشن میں درار ہے.
اصل میں، malan jharvard کے طور پر ایک ہی تھا،
لیکن اگر ہم واپس جاؤ وہ مختلف دیکھا.
>> کرمسن میں jharvard پر توجہ مرکوز کریں کیونکہ وہ مختلف نمکین کیا گیا.
الگورتھم ایک طریقہ ہے کہ میں پریشان تھا
ہیش قدر خفیہ قدر تھوڑا مختلف لگ رہا ہے
کیونکہ آدانوں تھوڑا سا مختلف تھے، لیکن ہڈ کے نیچے پاس ورڈ
بھی بالآخر کرمسن.
اب، اس کے بارے میں کسے پرواہ ہے؟
ٹھیک ہے، ہم نے تمہیں نمونہ صارفین کے ساتھ فراہم کر رہے ہیں، نمونے صارف کا نام
اور ان کے پاسورڈز کی hashes تاکہ آپ اصل میں کچھ ہے
گاہک آپ CS50 خزانہ کے لئے جب آپ کے کوڈ کے ساتھ پہلے دور زمین حاصل کریں.
آپ کے اندر ایس کیو ایل ٹیبل پر عملدرآمد اندر ڈیٹا بیس ہے، کریں گے.
آپ مزید سپریڈ شیٹ بنانے کے لئے موثر طور پر ہے، لیکن ہم آپ کو اس دینے کا فیصلہ کیا کریں گے
تم نے شروع کیا، اور آپ دیکھیں گے کہ مسئلہ سیٹ کی تفصیلات
آپ اس ٹیبل کی درآمد کے عمل کے ذریعے چلتا ہے
اور یہ بھی وضاحت کی کیا خصوصیات میں سے کچھ ہیں،
اور آپ بھی دیکھیں گے کہ ہم نے آپ کو کوڈ کے ساتھ فراہم کرتے ہیں
hashing یا ان پاسورڈز کی خفیہ کاری کو ہینڈل کرنے میں،
تو آپ کو کیا MD5 یا جیسے تمام کے بارے میں اصل میں ہے کے بارے میں بہت زیادہ پریشان ہونے کی ضرورت نہیں ہے.
>> تو، SQL، تشکیل استفسار زبان.
یہ ہے، بہت آسانی سے، زبان، ہم 7 pset کا استعمال کرتے ہوئے شروع کرنے کے بارے میں
اور شاید کسی ڈیٹابیس سے ڈیٹا کی درخواست کرنے سے باہر ہے.
ڈیٹا، پھر، ان سنبندپرک میزیں، کالم اور قطار میں tabularly ذخیرہ
لیکن حذف کی طرح کچھ نسبتا آسان نحو کا استعمال کرتے ہوئے،
داخل، اپ ڈیٹ منتخب ہمیں بالکل ایسا کر سکتے ہیں.
ہم نے جو ڈیٹا بیس سے خارج کرتے ہیں، کر سکتے ہیں داخل،
اعداد و شمار، کے ساتھ کے طور پر منتخب کریں، کہ ڈیٹا بیس سے اعداد و شمار کی بازیافت ہے اپ ڈیٹ کریں.
ہم ایسا کرنے کے بارے میں کیسے جا سکتا ہوں؟
کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے آلے میں آگے بڑھو.
مجھے http://localhost ھیںچو،
جس میں، پھر، مقامی آلات خود ہے.
یہ اس کا بنیادی عرفیت ہے.
اور آپ کے وزٹرز کا ریکارڈ رکھا / phpmyadmin.
یہ ایک خاص یو آر ایل پر ہوتا ہے کہ اس آلے سمجھنے کی پیش تشکیل کردہ ہے
کہ فوری طور پر کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ایک صارف کا نام اور پاس ورڈ کے لئے اشارہ ہے.
>> ہمیشہ کی طرح، میں نے jharvard اور کرمسن ٹائپ کرنے جا رہا ہوں،
لیکن احساس ہے جو کمپیوٹر پر منتظم کا اکاؤنٹ نہیں ہے.
یہ صرف ایک اتفاق ہے کہ وہاں بھی ایک CS50 خزانہ jharvard ہے.
Jharvard، کرمسن درج کریں، آپ کے وزٹرز کا ریکارڈ رکھا یوزر انٹرفیس ہے کہ ہم نے دیکھا دیتا ہے
ایک لمحے کی ایک جھلک پہلے، اور اسے پہلے تھوڑا بھاری ہے،
لیکن یقین دہانی کرائی باقی، تم اس آلے کو میں زیادہ تر روابط پر کلک کریں کبھی نہیں رہے ہیں.
آپ کو ایک چھوٹا سا اپسمچی جو سپر مددگار ہیں کا استعمال کرتے ہوئے کریں گے،
جن میں سے پہلے ڈیٹا بیس ہے یہاں.
اگر میں ڈیٹا بیس تک جانے نوٹس، کہ میں نے ایک ڈیٹا بیس بنانے کے لئے حوصلہ افزائی کی ہے.
یہ ایک نیا ایکسل فائل بنانے کی طرح ہے، مؤثر طریقے سے.
میں آگے بڑھو اور اس لیکچر کو بلاو جا رہا ہوں، اور میں صرف وہاں میدان، کولیشن کو نظر انداز کرنے جا رہا ہوں.
ڈیٹا کی نمائندگی کے ساتھ اس میں کرنا ہے،
اور میں کلک کریں تخلیق کرنے جا رہا ہوں، اور اب میں پیدا جانا نوٹس
بائیں ہاتھ پر جہاں اس کا کوئی ڈیٹا بیس کا کہنا ہے کہ
میں لیکچر کے ڈیٹا بیس کو جلد ہی نظر آنا چاہئے.
>> اگر میں نے بائیں ہاتھ کی طرف، لیکچر کی ڈیٹا بیس کے پر کلک کریں،
نوٹس میرے ٹیبز تھوڑا سا تبدیل.
میں ساخت کی درآمد، SQL، برآمد، اور کچھ دوسری چیزوں کو ملا ہے.
ساخت بہت خالی ہے.
ٹیبل ڈیٹا بیس میں پایا جاتا ہے، کیونکہ اسے یہاں کا کہنا ہے کہ،
تو ایک ٹیبل تشکیل دیں، اور چلو آگے بڑھو اور ایک ٹیبل بنانا
طالب علموں کو پسند کرتے ہیں، اور ہم کتنے کالم چاہتے ہیں؟
اس سادہ رکھنے کے لئے ہر طالب علم کے لئے دو، اور چلو ریکارڈ
ایک شناختی نمبر، نام، اور ایک ای میل ایڈریس ہے.
>> ہم اس طرح یہ آسان رکھنے 3 کالم تو کریں گے، جانا.
قسم ہے جو کہ آپ کو یہاں دیکھ کر اب تھوڑا سا گندا اور غالب ہے،
لیکن ہم صرف قطار کی طرف سے قطار اس کے ذریعے جانا ہے، تو واقعی بہت تیزی سے ہم دے
اس ڈیٹا بیس منفرد شناخت کے لئے ID کے نام میں پہلا کالم.
یہ ایک عدد صحیح ہو جائے گا. میں لمبائی اور اقدار اصل میں نظر انداز کر سکتے ہیں.
ایک int 32 بٹیں کوئی بات نہیں جو تم نے وہاں میں ٹائپ جا رہا ہے، تو اسے خالی چھوڑ دیں.
ڈیفالٹ قدر، میں نے اسے، شہوت انگیز null، کے طور پر بیان کر سکتے ہیں.
میں تنہا چھوڑ جا رہا ہوں. پہلے سے طے شدہ اقدار کے بارے میں فکر نہ کرو.
چلو صحیح صفات، یہاں سکرال.
یہ دلچسپ ہے.
چلو آگے جاؤ اور کسی حد تک منمانے کا کہنا ہے کہ شناخت اہستاکشرت ہونا چاہیے.
منفی تعداد برباد نہیں کرتے ہیں.
>> آو 0 4 ارب جاؤ، دے یا لے
اور پھر ہم ان علاقوں میں سے کسی ایک کو چھو نہیں ابھی تک وہاں،
لیکن اس وقت کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے نام میں نیچے یہاں ٹائپ کریں،
اور پھر دوسرے ای میل تھا، پکڑنے ای میل ہے
اور نام، ظاہر نہیں integers، تو ہم ایک مختلف میدان میں ان کو تبدیل.
یہ varchar، متغیر لمبائی چار کر دیتا ہے،
ایک SQL ڈیٹا بیس میں ایک تار کی طرح ہے
لیکن ایک متغیر کی حد، اور آپ اصل میں پہلے سے اسے بتانا پڑے
تار کی زیادہ سے زیادہ لمبائی، تو میں کسی حد تک منمانے جا رہا ہوں
کنونشن کی قسم 255 حروف کی طرف سے.
میں 32 مکمل طور پر کہہ سکتے ہیں. میں 1،000 کہہ سکتا ہے.
آپ کے پاس آپ کی آبادی کیا ہے پر خود کے لئے فیصلہ کرنے کی ضرورت کی قسم کی بنیاد پر
سب سے طویل طالب علم کا نام اور یہ تعداد یا اس سے تھوڑا بڑا کے ساتھ جانا،
لیکن جو ایک varchar کے بارے میں اچھی بات ہے یہ ہے کہ یہ بیکار نہیں ہے
ہر طالب علم کے نام پر 255 بائٹس.
اگر یہ DAVID ہے یہ پورے 255 بائٹس کو استعمال کرنے کے لئے نہیں ہے،
لیکن اس ایک بالائی جانے ہے، تو 255 کے ساتھ میں صرف کنونشن کی طرف سے جائیں گے،
لیکن ہم بحث کہ کچھ کم قیمت پر، اور ای میل ایڈریس کے لئے کر سکتے ہیں
مسلسل 255، ہو سکتا ہے لیکن ایک بار پھر، ہم ایک ہی بحث کر سکتے ہیں.
لیکن میں نے دائیں ہاتھ کی طرف یہاں پر ایک اور چیز کرنے جا رہا ہوں.
>> ایک ڈیٹا بیس کے بارے میں طاقتور کیا ہے یہ ہے کہ یہ بھاری لفٹنگ کے ایک بہت کچھ کر سکتے ہیں
یا تمہارے لئے پیچیدہ کام ہے.
خاص طور سے، میں واقعی میں کوئی پرواہ نہیں میرے طالب علم آئی ڈی نمبر کیا ہیں.
یہ صرف ایک ڈیٹا بیس میں ایک منفرد شناخت کنندہ کا مقصد ہے
تو میں اس طالب علم کی ایک 32 بٹ succinct نمائندگی ہے
تا کہ میں ان کی شناخت کے منفرد کچھ راستہ ہے
ایسا نہ ہو کہ ایک کلاس میں 2 داؤد، مثال کے طور پر،.
اصل میں، میں اس AI باکس، آٹو اضافہ چیک کرنے کے لیے جا رہا ہوں،
تاکہ ڈیٹا بیس، ایس کیو ایل، باہر کے اعدادوشمار
ہر نئے داخل طالب علم کی ID کیا ہونے جا رہا ہے.
میں اپنے کوڈ میں اس بارے میں دیکھ بھال بھی نہیں ہے،
اور میں بھی انڈیکس مینو کے تحت کچھ کرنے کا انتخاب کرنے جا رہا ہوں.
انڈیکس یہاں چھوڑ بنیادی، منفرد،
فہرست اور مکمل متن.
شاید تم اندازہ لگا سکتا ہے کہ ان چیزوں کے ایک جوڑے کی ہیں،
لیکن یہ سنبندپرک ڈیٹا بیس میں پتہ چلا ہے
آپ پروگرامر یا ڈیٹا بیس کے منتظم preemptively حاصل
جو کھیتوں کے طور پر ڈیٹا بیس کی اشارہ دے
ایک ٹیبل میں ایک چھوٹا سا خاص ہو.
>> مثال کے طور پر، میں اس حالت میں کہ ID کہنے جا رہا ہوں
ایک بنیادی انڈیکس ہے، دوسری صورت میں ایک بنیادی کلید کے طور پر کہا جاتا ہے ہو جائے گا.
کیا اس کی تعریف یہ مطلب ہے کہ اس ID کو آگے سے ہے
اس کے ٹیبل میں طالب علموں کو منفرد شناخت کرے گا.
کوئی بھی طالب علم کو اسی ID کیونکہ میں اس رکاوٹ یا اس انڈیکس نافذ کر رہا ہوں گا.
اس کے علاوہ، کیا یہ میرے لئے کیا جا رہا ہے یہ ہے کہ یہ بتانے جا رہا ہے
ایس کیو ایل ID کہ خاص ہے.
میں ID کے بارے میں خاص طور پر اس کی پرواہ ہے، تو آگے بڑھو اور اپنے پسند ہیں ڈیٹا کے ڈھانچے جادو کرو
درخت کی کسی قسم کی تعمیر.
عام طور پر یہ کچھ B-درخت، جس میں ہم ہفتے میں نہیں نظر پہلے کیا کہا تھا،
لیکن یہ بائنری درخت روح میں اسی طرح کے ایک اور اس طرح کے ڈیٹا کی ساخت ہے
کی کوشش کرتا ہے اور یہ کہ ہم کو دیکھا، لیکن یہ کہنا جا رہا ہے
ڈیٹا بیس کی فیلڈ تاکہ شاید میں اہم ہے
اس پر تلاش کرنے کے قابل بننا چاہتا ہوں، آگے جاؤ اور کچھ پسند کی تعمیر
یاد میں آنکڑا ڈھانچہ کی تلاش کو تیز کرنے تاکہ مثالی طور پر
وہ مسلسل وقت ہو یا کم از کم کے طور پر یہ ہے کہ ممکن قریب
تاکہ اسے لکیری تلاش میں نہیں devolve کرتا ہے، جس کا نہیں ہے
سب سے زیادہ نقطہ نظر کارکردگی کا مظاہرہ کر.
کے برعکس، ای میل ایڈریس میں ایک بنیادی کلید ہو سکتا ہے.
>> اصول میں، سب کے ای میل ایڈریس منفرد ہے، جب تک آپ کو کچھ اکاؤنٹ اشتراک کر رہے ہیں،
لیکن یہ عام طور پر ایک تار کی طرح کچھ استعمال کرنے کے لئے اچھا نہیں
کیونکہ اگر زندگی میں ایک بنیادی کلید کے طور پر اس کا مقصد منفرد شناخت کرنا ہے
آپ کے ٹیبل میں قطار 255 بائٹس کی زیادہ سے زیادہ استعمال کرنے کی کوئی وجہ نہیں ہے
منفرد کسی کی شناخت اگر آپ صرف 4 بائٹس سے دور حاصل کر سکتے ہیں
یا 32 بٹ int.
عام طور پر، ایک بنیادی کلید مختصر اور succinct ہونا چاہئے
اور مثالی طور پر ایک عددی یا ایک بڑا int، جس میں 64 بٹس کے طور پر ہوتا ہے جیسے کچھ.
لیکن ایک ای میل ایڈریس منفرد ہونا، اور ایک ڈیٹا بیس کی خصوصیات میں سے بھی ایک چاہیے
مجھ کی انفرادیت سے لاگو کرنے کے لئے ہے.
منفرد منتخب ای میل کے ساتھ دیئے گئے، اگرچہ خود کو ای میل کی طرف سے
آف ہے سکرین scrolled، میں ڈیٹا بیس میں کہہ رہا ہوں
مجھ پر اعتماد نہیں ہے.
کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ڈیٹا بیس میں داخل نہ ہونے دو
دو مرتبہ ایک ہی ای میل ایڈریس، یہاں تک کہ اگر میں ایک مورھ ہوں اور نہیں ہوں
میرے اگر اور اس کے علاوہ اگر اور اصل پی ایچ پی کوڈ کے ساتھ بہت اچھا
اور میں نے غلطی سے دو صارف ایک موجودہ ای میل ایڈریس کے ساتھ رجسٹر
ڈیٹا بیس ابھی تک درست کے لئے دفاع کے ایک اور سطح ہے
اس بات کا یقین کرنے کے لئے کہ کہ ڈپلیکیٹ ای میل ایڈریس ٹیبل میں ختم نہیں ہوتا.
>> اب، نام کے لئے، آپ کو اس کے برعکس کی طرف سے شاید اس کو منفرد بنا نہیں
کیونکہ اس وقت وہاں داؤد 2 یا 2 مثال کے طور پر مائیک کاریگر، کبھی نہیں ہو سکتا،
آپ کے ڈیٹا بیس میں، تاکہ ایک ہم اکیلے صرف چھوڑ دیں گے.
مجھے آگے جانا ہے اور نیچے دائیں طرف پر محفوظ کریں پر کلک کریں جا رہا ہوں،
اور سب کچھ اچھا لگ رہا ہے، لیکن یہاں کا نوٹس
یہ ایک حصہ ہے کہ اب ہم بہت زیادہ وقت خرچ نہیں کریں گے
کیونکہ نحو تھوڑا سا پیچیدہ ہے، اور ہم ٹیبل بنانے کے لئے کی ضرورت نہیں ہے
تمام ہے کہ اکثر، لیکن SQL خود کو ایک زبان ہے
نحو یہیں کہ میں پر روشنی ڈالی ہے جس کے لئے ہے.
phpMyAdmin واقعی کرتا ہے یہ آپ کے لئے ایک ویب کی بنیاد پر GUI پیدا
جس کے ساتھ آپ کا وقت بچانے اور دستی طور پر باہر ٹائپ نہیں کر سکتے ہیں
اس طرح ایک کافی طویل SQL استفسار.
>> دوسرے الفاظ میں، اگر آپ چاہتے تھے دستی طور پر اس کے ٹیبل کو تشکیل دیتے ہیں،
یا تو ہے کہ میں سیاہ فام اور سفید فام فوری طور پر یا میں بھی phpMyAdmin میں
یہ دوسری ٹیب کا استعمال کرتے ہوئے کی طرف سے، اس SQL ٹیب آپ سے SQL سوالات میں ٹائپ کہاں ہو سکتا ہے
تم چاہتے ہو، واضح طور سے، اس نے مجھے ایک منٹ لیا
اصل میں پوری نحو یاد کرنے کے لئے، اور پھر بھی میں شاید ہوگا
کچھ typos بنا دیا، تو اس آلے کو اس طرح چیزوں کے لئے مفید ہے، اور یہ بھی ہے شکنپرد.
آپ کو اندازہ کرنا کیا نحو ہے شروع کر سکتے ہیں
صرف اچھا رنگ کی طرف سے کوڈنگ اس phpMyAdmin انہوں نے مزید کہا ہے
ہماری بصری سہولت کے لئے.
لیکن اب اس کی بجائے دیتے.
مجھے سب سے اوپر ڈالیں ٹیب پر جا، اور مجھے آگے بڑھیں اور مثال کے طور پر داخل
کا کہنا ہے کہ لشکر طیبہ کے ایک ID اصل میں میں پرواہ نہیں کرتا.
یہ آٹو اضافہ ہو رہا ہے. میں اس کے ساتھ ڈیٹا بیس کے معاہدے ہونے جا رہا ہوں.
لیکن میں داؤد ہو، اور میرا ای میل malan@harvard.edu ہونا چاہئے گی.
>> آگے یہاں جاؤ اور ایک دوسرے کے طور پر مائیک سمتھ میں ڈال دو.
میں اپنے آپ کو ایک آخری نام کے طور پر دے دیں گے،
اور ہم نے اسے smith@example.com گے ہو،
اور پھر میں اگلے کہاں جاتے ہو؟
ٹھیک ہے، ایسا لگتا ہے جیسے جانے پر کلک کریں، اور voila بٹن ہے.
اوپر 2 داخل قطار میں نوٹس.
یہ اصل SQL استفسار ہے.
یہ میرے لئے پھانسی phpMyAdmin کے آلے ہے،
لیکن آخر نتیجہ، نوٹس، اگر میں اب براؤز ٹیب پر،
اس کے ٹیبل میں 2 قطاروں کو دیکھنے کے لئے، بہت خوبصورت یاد تازہ ہے
ٹیبل کے ہم اپنے صارفین کے کے لئے 7 pset سے پہلے دیکھا،
جن میں سے ایک ڈیوڈ Malan، جن میں سے ایک اب مائیک سمتھ ہے.
لیکن صرف صاف ہو جائے، میں phpMyAdmin استعمال کرنے کے لئے کی ضرورت نہیں ہے،
اور بیشک آپ کو جلد ہی 7 pset کے لئے کوڈ لکھنے جا رہے ہیں
جو قطار انہوں نے مزید کہا، قطار کو حذف کرنے، اپ ڈیٹ کرنے کے قطار اور اس طرح کے عمل automates،
تو آپ کے وزٹرز کا ریکارڈ رکھا بجائے SQL ٹیب پر جانا یہاں
طالب علم کہاں سے منتخب کریں * میں کی قسم اور
ای میل = "malan@harvard.edu."
>> دوسرے الفاظ میں لگتا ہے اب آپ کے پاس
کچھ HTML فارم، اور دوسرے شعبوں میں ان کے ای میل ایڈریس میں صارف کی اقسام،
اور مقصد اب واپس آخر کوڈ پی ایچ پی میں ہے
دراصل اس صارف کی دیگر تفصیلات دیکھو.
آپ کا پورا نام کیا ہے؟ آپ کے شناختی نمبر کیا ہے؟
آپ اس طرح ایک SQL استفسار لکھ سکتے تھے، طالب علموں سے * منتخب کریں
جہاں ای میل = "malan@harvard.edu."
نوٹس اور اگر میں تو اس پر کلک کریں، کہ میں اور یقینا میں، چاہیے صرف ایک قطار واپس حاصل ہے.
مائیک اس کے نتیجے سیٹ سے قطاروں کی وصولی کے طور پر رہ جاتا ہے،
ہے عام طور پر کہا جاتا ہے، کیونکہ اس نے مجھے ایک ہی ای میل ایڈریس نہیں ہے.
>> اب، پھر 7 pset کے لئے، یہاں آپ کو ایک انتظامی آلے کے طور پر phpMyAdmin استعمال کریں گے
اور pedagogical آلہ اپنے راستے کو جاننے کے لئے
SQL کی دنیا کے ارد گرد، لیکن دن کے اختتام پر
آپ اصل پی ایچ پی کوڈ کے اندر ان سوالات لکھ رکھا جائے جا رہے ہیں،
اور خاص طور پر Zamyla walkthrough میں دیکھتے رہو
آپ کو اس مسئلے کی سیٹ کے لئے جہاں تقسیم کوڈ کے دورے ملے گی
ہم آپ کو جہاں نہ صرف جمالیات لاگ ان صفحات کے لئے دی گئی ہے
اور اچھا کی تلاش علامت (لوگو) جو CS50 خزانہ کا کہنا ہے کہ، لیکن ہم نے بھی آپ کو دیا ہے
افعال جو آپ کی زندگی تھوڑی آسان کر دے گا کے ایک گروپ ہے.
ہم نے بھی آپ کو لئے pset کا حصہ لکھا ہے،
خاص طور پر اس کی لاگ ان حصہ، آپ ایک نمائندہ ڈیزائن کے احساس دینے کے لئے
جو اصل میں مثال index.php کے لئے ایک کنٹرولر کا استعمال کرتا ہے،
آپ login.php وغيرہ پر، اور پھر دیکھنا بھی pset سانچے ڈائریکٹری ہے.
ہے کہ آپ کے خیالات کی ہے، جمالیات کے تمام.
اور اس طرح مجموعی طور پر 7 pset میں کام کے فلو کو وہ جا رہا ہے
آپ کے صارفین کو ایک براؤزر میں ایک یو آر ایل کے ذریعے کنٹرولر کے.
اس کے کنٹرولر پی ایچ پی کوڈ ہے کہ آپ نے لکھا ہے، اور آپ کی پی ایچ پی کوڈ کے اندر
SQL کے کچھ لائنیں ڈبل قیمت درج کرنے کے درمیان میں شاید اندر در اندر
اور ایک تقریب میں منظور ہم نے بلایا استفسار نے لکھا
طرح کچھ کا استعمال کرتے ہوئے بغیر مدد آپ کو ڈیٹا بیس سے بات کریں گے
phpMyAdmin کی طرح ایک انتظامی آلہ.
>> آپ پی ایچ پی کوڈ میں SQL بیانات کو لکھنے کے قابل ہو جائے گا
اور نتیجہ سیٹ کے ایک پی ایچ پی کی صف،
قطار جو کہ اصل میں اس کے سوال سے ملا.
اور اسی طرح آپ اضافہ یا اخراج کرنے کے قابل ہو جائے گا
یا، اپ ڈیٹ یا کی طرح، نحو، جس کے لئے کافی اسی طرح ہے
اور آپ کو تقسیم کوڈ سے کچھ آن لائن حوالہ جات سے دیکھیں گے،
اور خود pset سے کس طرح یہ ہے کہ ایسا کرنے کے بارے میں جانے کے لئے پیک.
احساس بالآخر ہم واقعی صرف SQL کی سطح رہے ہیں scratching
اور ایس کیو ایل کے، لیکن اس کی طاقت واقعی یہ ہے کہ یہ آپ کو آزاد
مسائل آپ کو حل کرنا چاہتے ہیں پر توجہ مرکوز کرنے کے لئے، استعمال صورتوں میں آپ پر عملدرآمد چاہتے ہیں
بہت زیادہ سے زیادہ فکر کرنے کے لئے، کم سے کم از کم جلد کے بغیر،
کو کہاں اور کس طرح اور تلاش کرنے کے لئے آپ کے ڈیٹا بیس کے ذخیرہ
اور یہ بہت لفظی ہے جہاں فیس بک خود کو اس کے آغاز مل گیا
ایس کیو ایل کا استعمال کرتے ہوئے اور پھر زیادہ ایس کیو ایل سرورز اور پھر ایس کیو ایل سرورز کا استعمال کرتے ہوئے
طویل عرصے سے یہاں تک کہ وہ تو واقعی کس طرح کے بارے میں مشکل سوچ شروع سے پہلے
سٹور کے اعداد و شمار، کس طرح چیزوں کو بھی زیادہ مؤثر طریقے سے ذخیرہ،
اتنی اگرچہ ہم لگ یہ حقیقت عطا کریں گے کہ اشاریہ جات اور منفرد رکاوٹوں
اور وغیرہ صرف کام ایک بہت ہی دلچسپ گفتگو
کہ یہ بالآخر سب کی قیادت کرنے تو احساس ہوا کہ ہم صرف سطح scratching کر رہے ہیں
کیا آخر میں آپ یا آپ کے منصوبوں کو بہت بڑے ڈیٹا کے تھوڑا سا بن سکتا ہے.
>> کے ساتھ اس نے کہا، یہیں ختم ہے، اور ہم اگلے ہفتے آپ کو نظر آئے گا.
[CS50.TV]