>> خوب.
بنابراین، بدون گرفتاری بیشتر، SQL، ساختار زبان پرس و جو.
بنابراین، شما احتمالا این استفاده حداقل در CS50، شاید در CS165،
شاید در خود پروژه های شخصی است.
و چه SQL به شما اجازه انجام این کار، در SQL سرور به طور کلی؟
آره؟
[نکته نامفهوم]
OK، که بسیار بود راه امن از گفتن آن.
بله. پس از آن اجازه می دهد تا شما برای ذخیره داده ها
و مهم تر اجازه می دهد تا شما برای داده های پرس و جو.
و این یک گام به جلو است
از با استفاده از چیزی ساده تر مانند CSV، درست است.
کاما متغیرها جدا می شود.
ارزش های مشابه.
به طور مشابه به شما اجازه ذخیره کنید اطلاعات یک سطر
در یک فایل متنی.
اما آنچه این حرکت نزولی است CSV فایل برای ذخیره سازی داده های خود،
حتی اگر شما به طور موثر دریافت سطر و ستون از آن؟
آره.
>> شما نیست 'باید همان سازمان
بهره وری [نامفهوم].
>> شما همان ندارد بهره وری سازمان است.
نظر شما چیست؟
>> خوب، مانند [نامفهوم] مانند اولیه [نامفهوم] داشته باشد.
>> OK. آره.
>> این یک پایگاه داده رابطه ای است شما می توانید پایگاه داده های متعدد دارند
مرتبط به یکدیگر در راه خیلی خاص.
>> OK. خوب.
>> این [نامفهوم] به مجموعه CSV.
>> و اجازه دهید به نیشگون گرفتن و کشیدن اصطلاحات کم است.
جداول بنابراین چند در یک پایگاه داده، مطمئن،
و فراتر از آنچه می رود شما می توانید تنها با یک CSV انجام دهد.
اما واقعا محدودیت با CSV استدلال من این است
که ناکارآمدی از آن همه.
این بسیار آسان برای طرح.
اما اگر شما می خواهید برای انجام پرس و جو، چه زمان در حال اجرا است
هر پرس و جو را انتخاب کنید در یک فایل CSV؟
منظورم این است که آن را بزرگ قدیمی [نامفهوم] است، درست است، چون در بدترین حالت،
آنها در پایین بسیار افزایش یافت.
حتی اگر شما تمام طبقه بندی شده اند بود فایل CSV، اگر شما نمی دانید
که در صف مقابل، خوب، شما هنوز هم در حال رفتن به
برای جستجو در همه چیز.
بنابراین، در میان چیزهای ما در حال رفتن به
از استفاده واقعی پایگاه داده با استفاده از یک زبان
مانند SQL است که ما می توانید پرس و جو آن و ما می توانیم در پیش
به عنوان طراحان پایگاه داده مشخص زمینه چه می باشد
که به احتمال زیاد رفتن به سوال در مورد به طوری که مردم
در خروجی زیر و یا مایکروسافت و یا اوراکل،
هر کس ساخته شده است در پایگاه داده شما با استفاده از می توانید تمام انجام
از کار سخت بدانند، OK،
با توجه به یک میلیون از این IDS.
چگونه می توان طرح ما - آنها را در حافظه؟
نوعی از درخت شاید ساختار،
به طوری که هنگامی که شما انجام در واقع اجرا را انتخاب کنید،
آن چیزی است که لگاریتمی و یا لگاریتمی
از لگاریتمی در زمان و نه از واقع واگذاری
به چیزی خطی.
بنابراین ما بسیاری از رو عملکرد آن راه.
و ما همچنین می تواند بسیاری ذخیره بیشتر به آسانی داده های بیشتر 'باعث می شود که SQL
سرور به طور معمول ذخیره شده در RAM حتی اگر قطعات
از آن ممکن است بر روی دیسک ذخیره می شود و شما احتمالا در حال حاضر می دانیم
که RAM است به طور کلی سریع تر از هارد دیسک،
به طوری که یک کار خوب است.
و ما نیز می تواند اداره کند همزمانی بسیار بهتر است.
اگر 165 یا 161، گرفته شده شما می دانید که اگر دو نفر را امتحان کنید
برای انجام همان چیزی در یک بار بر روی یک سیستم،
کارهای بد به طور کلی می تواند رخ دهد.
بنابراین در میان ویژگی های دیگر ما می توانید اگر ما جدول ما طراحی
در راه حق است پشتیبانی و امنیت بهتر
که آن را به همزمانی می آید.
بنابراین، دو نفر در دو بخش
از جهان با استفاده از همان وب سایت، در صورتی که هر دو را امتحان کنید
به خرید چیزی در همان زمان، که منظور است که نمی
به در به طور همزمان.
به نحوی آنها را به صورت سریال توسط کسی غیر از خود ما -
کسی غیر از خودمان.
اراده پایگاه داده انجام این کار برای ما.
بنابراین، هنگامی که آن را به ساده ترین شکل است،
SQL به ما امکان می دهد پرس و جو پایگاه داده رابطه ای.
پایگاه داده رابطه ای یکی که یکی است
جداول یا بیشتر در آن به طور معمول.
و اگر این است که یک کمی نا آشنا،
شما می توانید واقعا فقط فکر می کنم از این به عنوان اکسل و یا شماره
و یا صفحات گسترده گوگل.
این فقط دارای سطر و ستون و به طور معمول بالای هر
از آن ردیف یک نام برای آن است.
بنابراین ممکن است این ID ستون، ستون نام،
ستون آدرس و غیره.
و پس از آن شما می توانید چند دارند مانند جداول اگر شما می خواهید
برای شروع تخمگذار از انواع مختلف داده ها.
اما شما ممکن است به خاطر حداقل از CS50 می کنیم که سعی
مبتنی بر GUI را به شما بدهد ابزار [نامفهوم]
به مدیریت پایگاه داده خود را.
این از phpMyAdmin نامیده می شد.
پس از آن فقط یک تصادف است که آن را در PHP نوشته شده است، واقعا،
اما آن را فقط مبتنی بر وب بود جلو به یک پایگاه داده به پایان برسد.
و از طریق زبانه های مختلف و لینک ها، می تواند به شما آغاز خواهد شد
برای پیکربندی یک پایگاه داده برای خودتان.
اما یک ابزار خوب برای شروع به یک کمی راحت تر
با هم مشتری خط فرمان.
بنابراین، اگر با استفاده از لوازم خانگی CS50 و یا واقعا با استفاده از هر PC کلان
است که خروجی زیر خط فرمان مشتری، شما همچنین می توانید این کار را انجام مرتب سازی بر
مدرسه های قدیمی، مثل این.
همانطور که به کنار پروژه خروجی زیر، حداقل نسخه های منبع باز
از آن است که در حال حاضر برای نام MariaDB به دلایل مختلف که شما می توانید به عنوان خوانده شده
در ویکیپدیا اما این نرم افزار همان است،
آن را به نحو مشابه است و غیره،
تقریبا اساس همان کد.
و وقتی که من در این هستم بی درنگ من در حال حاضر می تواند ارتباط برقرار
با پایگاه داده من خیلی بیشتر دستی.
بنابراین مورد، به من اجازه پیش بروید
و فقط باز کردن یک پنجره ترمینال.
من به طور اتفاقی به استفاده از CS50 لوازم خانگی اما شما می توانید این کار را انجام
در اکثر هر سیستم در که به شما این حق را دارید
نرم افزار نصب شده است.
و من قصد دارم برای انجام این کار خروجی زیر-U برای نام کاربری جان هاروارد
در این سیستم خاص،-p برای یک رمز عبور که من تایپ
در کمی بیشتر ایمن با ضربه را وارد کنید.
در حال حاضر من درخواست می کنم.
من قصد دارم به نوع قرمز در لوازم خانگی CS50
و در حال حاضر من اساسا ببینید که همان صفحه.
اما دستورات حال حاضر وجود دارد که ما می توانیم تایپ کردن شروع
مانند نشان می دهد پایگاه های داده، و که رفتن به همه به من نشان بده
پایگاه های داده که من آن را در حال حاضر در سیستم ایجاد شده،
تقریبا همان لیست شما می توانید در phpMyAdmin را ببینید.
یک زن و شوهر از دیگران مانند وجود دارد طرح اطلاعات و آزمون،
که اگر شما در اطراف فشار با نوک انگشت CS50 لوازم خانگی، ما مخفی کردن برخی از
از این جداول سطح پایین تر
اما آنها بوده است وجود این همه وقت.
خروجی زیر در واقع تا به سطح پایین خواص مانند نام های کاربری
و کلمه عبور برای پایگاه داده خود را، نه برای درخواست شما
که شما ممکن است در حال اجرا در بالای آن.
بنابراین در پیش است، امروز، من ایجاد چند پایگاه داده ها،
که یکی از آنها به نام courses50.
شانس برخی از شما استفاده کرده اند ابزار خرید البته CS50،
است که یک رابط بزرگ دوره مورد نظر ثبت شده است.
و این است که در واقع خوب مجموعه داده تا در مورد علت صحبت می کنید،
یکی از ما نوعی از همه هستی بدیهی است که با دوره های آشنا
و استادان و جلسه مکان ها و همه نوع
از کارهای عادی دانشگاه،
اما آن را نیز در برخی از فرصت های جالب
برای طراحی.
بنابراین ما فکر کردم ما با استفاده از مفهوم کاتولوگ البته
و یک ابزار خرید به عنوان یک به عنوان مثال در طول امروز به مرتب سازی
قاب برخی از طرح تصمیمات ما را به.
بنابراین شروع وجود دارد اجازه دهید.
فرض کنید که من در واقع می خواستم برای نمایش فوق العاده ساده
البته ابزار خرید.
و ساده ترین جهان من می توانم تصور و یک است
که در آن دوره وجود دارد و مدرسان وجود دارد.
و اجازه دهید که فرض به خاطر بحث و گفتگو
که هر دوره حداقل یک نام.
بنابراین اجازه دهید برای شروع طرح این است.
من قصد دارم به استفاده از phpMyAdmin فقط به عنوان یک راحتی،
بنابراین ما مجبور به تایپ کردن تمام نمایش داده شد دستی.
اما در اینجا من در من پایگاه داده courses50.
اگر با این نا آشنا، آن را خواهید تواند بسیار آسان می باشد که شما شیرجه رفتن
در را به پروژه خود اگر شما می خواهم به استفاده از آن.
من قصد دارم برای ایجاد یک جدول نام دوره های آموزشی
و من فقط می توانم فکر می کنم از یک رشته
در حال حاضر، به نام یک دوره.
من قصد دارم به پیش بروید و مثلا من یک ستون را به من بدهید.
در حال حاضر، به عنوان شما را به یاد شما یک رابط که یک بیت است
مثل این.
و حرکت صعودی دیگر رک و پوست کنده از phpMyAdmin به این است که مرتب سازی بر
از خود آموزش و از طریق دراپ، شما می توانید مرتب سازی بر اساس
از دیدن آنچه که ممکن است شما تصمیم گیری های طراحی می باشد.
من می خواهم به هر دوره یک نام.
که نام این ستون است.
و چگونه در مورد نوع داده های خود را؟
بسیاری از شما باید در دانم حداقل برخی از این انواع داده
از تجربه قبلی.
چه مناسب برای نام دوره؟
شارون؟
>> varchar ها.
>> OK، VARCHAR که متغیر کاراکتر است.
و چه چیزی است که معنی اصطلاح فنی؟
[نکته نامفهوم]
OK. پس از آن یک رشته است.
و جنبه ور از آن به معنی چه؟
متغیر. اما آنچه معنا است؟
آره؟
[نکته نامفهوم]
دقیقا. پس از آن یک متغیر است تعدادی از شخصیت های
در رشته تا به برخی از حداکثر.
بنابراین در اینجا برای اولین بار ما تصمیم گیری طراحی.
در واقع ما برای تصمیم گیری چند بایت حداکثر
برای تخصیص به هر یک از این رشته است.
به طور کلی، شما می خواهید مرتب کردن بر اساس آن بیش از حد کوچک است،
آن را بیش از حد بزرگ را ندارد چون آشکار
اگر بیش از حد کوچک شما فقط هستید رفتن به شروع از حذف داده ها
و شما اطلاعات از دست بدهند.
و اگر آن را بیش از حد بزرگ، شما فقط هستید نوع گفتن به پایگاه داده
به انتظار و به بهینه سازی برای داده های بیشتر
از آن ممکن است در واقع تا کنون.
پس چه احساس معقول و منطقی است شماره برای نام یک دوره؟
60؟ OK، بنابراین 60.
که به نظر می رسد بسیار منطقی
تا زمانی است که وجود دارد هیچ استثنا به آن.
واقعا وجود نداشت سخت، قانون سریع می باشد.
البته صادقانه بگویم، برای دلایل تاریخی زیادی
از مردم 255 را انتخاب کنید چون برای سال که مرتب سازی بر بود
از حداکثر به طور پیش فرض با استفاده از 8 بایت - 8 بیت به عنوان شمارنده خود را.
من می خواهم بیشتر [نامفهوم] ممکن است قدرت 2 استفاده
اما این نوع بی ربط.
بنابراین ما می توانیم با 60 بروید.
که به نظر می رسد منطقی تا زمانی
همانطور که ما در نهایت آن را پشیمانی نیست چون که کران بالا.
حالا فرض کنید در مقابل تصمیم گرفته شد،
کاراکتر متغیر نیست اما فقط رشته کاراکتر.
بنابراین بر خلاف C و C + +، کاراکتر اختصاص یک کاراکتر معنی نیست
و پایگاه داده که به طور کلی به معنی یک عدد ثابت
از کاراکتر در یک رشته است.
چه خواهد بود حرکت صعودی و / یا حرکت نزولی از انتخاب من 60
برای یک میدان کاراکتر، به جای آن از نوع متغیر varchar؟
این دقیقا همان نوع اول است تصمیم شما باید به
هنگامی که بازرسی [آوایی] از از با شرکای خود پروژه.
آره، شارون دوباره.
[نکته نامفهوم]
خوب. بنابراین اگر نام کمتر است
از 60 پس از آن شما به هدر رفتن هر آنچه که دلتا است
بین 60 و طول واقعی.
به طوری که فقط احساس بی فایده است، کلمه در ادامه متن از شما نیاز دارید.
اما چرا آیا وجود دارد؟
مطمئنا در برخی از حرکت صعودی وجود دارد.
آره؟
[نکته نامفهوم]
مطمئن شوید. بنابراین گاهی اوقات شما ممکن است تعداد ثابت می دانند
از شخصیت های مثل 10 رقم برای یک شماره تلفن را به عنوان مثال.
اما چه کسی اهمیت میدهد، مانند اینکه چرا نه تنها می گویند 11 به هر حال
و یا چرا نمی گویند 60 به هر حال با VARCHAR؟
چه مزیت ما را دریافت کنید با دانستن و طراحی
برای یک عدد ثابت از کاراکتر؟
[نکته نامفهوم]
شما در مسیر صحیح است.
پس از آن بهینه سازی اما واقعا از - آره؟
[نکته نامفهوم]
OK. خوب. تمرکز بیایید در آن بخش است.
بنابراین نمایه سازی.
پس از آن که معلوم اگر شما می دانم که در پیش است که همه
از زمینه های خود را در حال رفتن به 60 کاراکتر،
شما واقعا می توانید از این فکر می کنم ستون ها در دیتابیس اکسل
به عنوان داشتن بسیار مستقیم، از سمت چپ تراز
و لبه های موجه راست
زیرا هر ستون 60 کاراکتر گسترده است.
این بدان معنی است که این رشته 60 کاراکتر فاصله است
از این رشته، 60 شخصیت های به دور از این یکی
و این یکی و این یکی.
پس فقط مثل زمانی که شما آموخته C، شما دسترسی تصادفی به حال
در جهان از آرایه ها، همان ایده در اینجا.
اگر ستون خود را نشان داده است با استفاده از کاراکتر طول تنها ثابت،
شما می توانید به طور موثر صفحه اول به طور تصادفی به 60 یا 120 یا 180
و شما می توانید در به صورت جداگانه دریافت کنید رشته بسیار سریع.
سپس اگر به جای آن، ستون خود را به حال لبه سمت چپ تا به صحبت می کنند
اما حق بسیار ناهموار لبه به ستون
دلیل این که شما ممکن است 10 حرف،
15 حرف، 5 حرف.
پس این هم یک معاوضه است.
و گاهی اوقات تنها از طریق آزمون و خطا
و آزمایش آیا می توانید چهره
واقعا چه تماس بگیرید است اما این نوع هستند
از سوالات است که باید رفتن
از طریق ذهن و / یا خود را جدول زمانی که آن زمان می آید
برای طراحی بانک اطلاعاتی شما.
بنابراین، نه لزوما راست پاسخ اما شما باید
حداقل برخی از آنها جمله یا دو در ذهن
نسخه پشتیبان تهیه هر تصمیم گیری شما را.
بسیار خوب.
بنابراین اجازه دهید اسکرول نگه دارید در دهید در اینجا
که UI از phpMyAdmin است.
بنابراین، مقدار پیش فرض برای نام، باید مشخص I
که آن را باید داشته باشد مقدار پیش فرض تهی؟
شما چه فکر میکنید؟
آیا می توانم یک دوره یک نام تهی؟
فقط احساس عجیب و غریب، درست است؟
من نمی توانم هیچ فکر می کنم دوره های بی نام در دانشگاه هاروارد.
و شاید در برخی وجود دارد مورد گوشه ای مبهم
که در آن یک دوره داده می شود تعداد
و استاد نیست انتخاب یک نام برای آن، اما -
منظور من، به جهنم که،
مانند اجازه دهید حتی زحمت حمایت از که.
من می خواهم در جهت منافع می گویند از یک پایگاه داده خوب تمیز،
اجازه دهید مشخص است که شما می توانید نیست یک مقدار پیش فرض تهی.
روش دیگر، ما می تواند انجام دهد چیزی شبیه البته بدون عنوان
است که بر خلاف با نه سیستم عامل مکینتاش و ویندوز انجام
هنگامی که شما یک پوشه به عنوان مثال،
اما وجود دارد که باعث می شود حس کمی بیشتر
به طوری که انسان چیزی را ببینید.
ما در حال صحبت کردن در مورد پایگاه داده به عقب پایان احتمالا
برای انتخاب دوره.
بنابراین من واقعا حتی مانند ایده دادن آن
در نامهای البته بدون عنوان
از آن واقعا نمی رفتن به کمک به هر کسی.
بنابراین اجازه دهید این عنوان هیچ کدام ترک، که بدان معنی است که هنگامی که شما وارد
در این پایگاه داده، شما باید به هر دوره نام
که احساس می کند کمی پاک کن به من.
بسیار خوب.
بنابراین پیمایش بیشتر، میترا.
این فقط مربوط به مجموعه کاراکتر و فلان چیز
اگر شما تا کنون دیده ام اشاره از سوئدی
در phpMyAdmin که چون مردم
که از phpMyAdmin نوشته سوئدی بودند.
این است که PHP و یا آن را خروجی زیر؟
یکی از این دو، I بدون مقدمه را فراموش کرده.
اما به دلایل تاریخی
اما شما می توانید هر بیان شخصیت به زبان انگلیسی
که شما می توانید با سوئدی پس از آن یک غیر مسئله تا حد زیادی.
CS50 لوازم خانگی هر چند مورد استفاده - پیکربندی شده برای استفاده UTF-8،
به طوری که به طور کلی باید برای شما نمی باشد تا موسیقی پاپ.
ویژگی ها.
بنابراین هیچ یک از این ها واقعا مرتبط است.
I دودویی، بدون علامت، نگاه کنید به zerofill بدون علامت،
و در به روز رسانی برچسب زمان فعلی.
این درست است فقط شامل برای برخی از فیلد عددی
و یا برخی از زمینه های زمان.
بنابراین ما به جست و خیز بیش از که به طور کامل.
نول. آیا می توانم این زمینه می توانند null باشند؟
بنابراین هیچ. ما در حال حاضر این نوع از مکالمات.
بنابراین ما نمی خواهیم مقدار پیش فرض.
ما نمی خواهیم آن را به تهی باشد.
چه در مورد شاخص؟
چهار انتخاب در اینجا وجود دارد.
به چه معنی است اگر ما مشخص
که این ردیف در جریان است به یک کلید اصلی؟
فکر بازگشت به CS50 یا CS165 اگر شما آن را گرفته ایم.
[نکته نامفهوم]
دقیقا. بنابراین یک کلید اصلی با تعریف این زمینه است
که منحصر به فرد شناسایی هر ردیف در این جدول.
و شما می توانید بر روی آن تکیه می کنند به انجام که شناسایی منحصر به فرد.
بنابراین، چه معنی است پس از آن به تنها منحصر به فرد باشد؟
خوب، از این دو است مرتب سازی بر
از زیر مفاهیم در زیر هود.
اما به طور کلی، کلید اصلی است مرتب کردن بر اساس قرارداد شما را
با چیزی که در پایگاه داده است.
وقتی که من نمایش داده شد به دنبال یک دوره،
من قصد دارم برای استفاده از این زمینه خاص است.
و ما به بازگشت به آیند چرا که ما ممکن است دو
چنین انتخاب هایی را در اینجا، اولیه و یا منحصر به فرد.
منحصر به فرد فقط می گوید، این درست است که رفتن به منحصر به فرد
اما من واقعا نمی هر گونه نوع تعهد شفاهی در اینجا
برای استفاده از این زمینه برای جستجوی من
دلایل ما به شما در یک لحظه را ببینید.
اگر ما به جای تعیین شاخص، چه معنی آن را به مشخص
که یک میدان دارای یک شاخص در آن هست؟
آره؟
[نکته نامفهوم]
دقیقا. آن شده است بهینه سازی شده برای پرس و جو.
بنابراین شما - سرور پایگاه داده، اوراکل، خروجی، هر چه،
به طور کلی کار می کنند سحر و جادو خود را در پشت صحنه یک بار شما کلیک کنید
که گزینه و سپس کلیک کنید جویی در هزینه و آن را خواهد ساخت
تا به طور معمول یک ساختار درختی، B-درختان اگر شما را دیده ام
و یا شنیده کردن است که درخت بسیار کوتاه، به دنبال
است که به شما بسیار خوب خواص لگاریتمی
هنگام جستجو در داده ها.
اگر شما یک شاخص مشخص نیست در یک میدان، چه خبر است
به در حال اجرا زمان جستجو
برای خودسرانه [آوایی] نام دوره؟
آن چیست؟
[نکته نامفهوم]
اوه، [نامفهوم]، خطی، درست است؟
اگر آن را بدون بهینه سازی وجود دارد فراهم به پایگاه داده
و شما فکر نمی پایگاه داده چه نوع
داده ها به انتظار.
بهترین شما می توانید انجام چک است همه چیز را هنگامی که شما به دنبال
برای برخی از ارزش، به خصوص اگر وجود دارد می تواند
در واقع تکراری.
متن کامل در عین حال، ما به شما موج دست ما در حال حاضر.
اما به طور کلی، این است که نوع اول است که به شما اجازه می دهد تا
به کلمه کلیدی بهینه سازی جستجو در یک میدان.
بنابراین این ممکن است یک نامزد خوب
برای مثل یک شرح دوره که در آن شما ممکن است یک زن و شوهر دارند
از پاراگراف و شما ممکن است می خواهید برای انجام مسابقات زیر رشته.
متن کامل به طور کلی اجازه خواهد شما این کار را نسبتا کارآمد.
AI، این یک نوع وحشتناک است از توضیح اما اگر ما شناور
بیش از آن را خواهید دید افزایش خودکار.
قابل اجرا نشده هر دو در اینجا اما افزایش خودکار مفید است
برای شبیه میدان بین المللی به دلیل پایگاه داده خواهد شد مراقبت را
از روند plusing به علاوه هر بار که شما وارد انجام دهد.
به طوری که حتی اگر دو نفر به معنای واقعی کلمه کلیک کنید ارسال
در همان زمان و سعی کنید برای ایجاد یک ردیف به نحوی
در پایگاه داده، یکی از آنها تعداد I کنید،
از سوی دیگر خواهد شد تعداد I به علاوه 1.
شما لازم نیست که نگران باشید
در مورد دو عدد بودن اختصاص داده عینا اگر شما
برای انجام این کار خود را در کد.
بسیار خوب.
بنابراین من از نوع دوست که در آن ما یک نام به رو.
بنابراین اجازه دهید روی Save کلیک کنید.
آیا این یک طراحی خوب برای یک جدول پایگاه داده؟
و به عنوان یک کنار اگر زنگ زده در SQL و یا به شما نوعی
فقط همیشه به نوبه خود یک کور چشم به آنچه که قرار بود،
من می توانستم تایپ دقیقا همان است که -
این سه خط که در آن به موقع سیاه و سفید
در خط فرمان مشتری و یا من می تواند انجام داده اند
که در کد برنامه نویسی.
پس همه از phpMyAdmin در حال انجام برای من، فقط صرفه جویی در من تلاش
از یاد گاهی اوقات نحو و تایپ کردن را برای
مانند دستورات خسته کننده.
بسیار خوب.
پس این مثل احساس نمی بهترین طراحی، یک میز درست است.
در حال حاضر ما می تواند داشته باشد چیزهایی مانند استادان
و محل و شرح.
اما حتی پس از آن، با استفاده از نام تنها
برای شناسایی دوره های آموزشی را احساس ایده آل نیست.
چه طور کلی ما در گذشته انجام می شود
اگر شما از پایگاه های داده استفاده می شود منحصر به فرد ردیف؟
با استفاده از نه متغیر varchar به طور معمول.
آره؟
[نکته نامفهوم]
آره. بنابراین به طور معمول ID البته.
بنابراین، شایع ترین رویکرد در اینجا به ویژه
در هنگام استفاده از چارچوب در واقع تنها
برای استفاده از یک شماره مثل یک عدد صحیح.
بنابراین اجازه دهید به جلو و انجام این کار.
و ما می توانیم این کار را در چند انجام راه، اما اطلاع اگر زوم I
در در پایین در اینجا.
من قصد دارم برای گفتن یک اضافه ستون ها در انتهای جدول،
به طور کلی فقط برای تصویری راحتی شما قرار داده شناسه
در آغاز جدول حتی اگر این هیچ واقعی
تاثیر عملکردی است.
من می خواهم بگویم اضافه کردن یک ستون
در آغاز از جدول.
من قصد دارم به کلیک کنید، که به من می دهد پشت این UI در اینجا.
اجازه دهید این ID تماس بگیرید.
اگر ما فکر می کنم ما در حال رفتن به بیش انجام 4 میلیون دوره
درست است اعضای هیات خوب است.
ما حتی می تواند آن را منقبض کردن
اما فضای ارزان است به طوری که واقعا اهمیت میدهد.
اما، ما در حال تلاش برای ارسال فیس بوک در حال حاضر،
ممکن است یک چیز بد نیست به پیش بینی نوع داده int بزرگ
که ما نوع داده int 64 بیتی را
اما بعد از آن شما به معنای واقعی کلمه است دو برابر شدن تعداد بیت
که شما با استفاده از، معاوضه تا جزئی
اما چیزی در نظر بگیرند.
در حال حاضر، این است که گیج کننده است چیزی که میراث.
شما ممکن است به یاد می آورند با استفاده از خروجی زیر
که در هر زمان شما از نوع int اعلان درست است شما اغلب یک تعداد را ببینید
در کنار آن مانند شماره 10.
این هیچ ربطی به به اندازه تعداد
و یا تعداد بیت.
این است که با تعداد از کاراکتر استفاده می شود که
به بصری صفحه نمایش که فیلد int
هنگامی که با استفاده از یک پنجره ترمینال.
بنابراین ما می توانیم در یک لحظه دید که.
بنابراین، آیا گمراه نمی شود با تایپ کردن اعداد
در آن وجود دارد حتی اگر آن را به طور موثر با ما درخواست
برای اینجا.
در اینجا، من قصد دارم پیش بروید و می گویند بدون علامت.
هیچ دلیلی وجود ندارد تا مواد زائد وجود دارد تمام اعداد منفی ما
از پایگاه داده به طور کلی رفتن
به فرض مثبت ارزش یا null.
ID قطعا نباید خالی باشد.
و چه چیزی شما را در مورد فکر می کنم شاخص این فیلد ID؟
اجازه دهید آن را اصلی را.
بنابراین، اگر چه، هر چند، مانند من می توانم فقط از یک دوره CS164 فکر می کنم
در دانشگاه هاروارد و تنها یک البته CS50 در دانشگاه هاروارد
و این بسیار به طور کلی حقیقت
که شاید استثنا هم وجود دارد [نامفهوم] در هر دو ترم
و یا چیزی عجیب و غریب مانند آن.
اما اساسا بیشتر، به همین دلیل بهتر
برای استفاده از یک ID انتگرال عددی به منحصر به فرد شناسایی دوره نه
از یک رشته منحصر به فرد؟
آره؟
[نکته نامفهوم]
OK، جالب است.
بنابراین اگر ما تا به حال مرتب کردن بر اساس دوره های متقابل ذکر شده است.
به طوری که یک مثال خوب است.
من مطمئن هستم که من نیستم حل که هر چند
با دادن همان شماره ID اگر این
که در آن شما را با آن خواهد شد.
هیچ؟ OK. اما قطعا مورد گوشه در نظر بگیرند.
در صورتی که نوع وجود دارد - ما نیاز به نوعی
از aliasing به طور بالقوه.
[نکته نامفهوم]
مطمئن شوید.
[نکته نامفهوم]
این یک مثال خوب است.
نام ممکن است تغییر بیش از زمان، کاملا معقول است.
چه چیز دیگری؟
[نکته نامفهوم]
با عرض پوزش، می گویند دوباره.
[نکته نامفهوم]
بله، دقیقا.
پس در واقع، که قیچی واقعی است
که با استفاده از یک نوع int 32 بیتی است احتمالا سریعتر باشد
از برخی از متغیر طول رشته کاراکتر.
در مورد اول، می تواند به معنای واقعی کلمه مناسب در ثبت نام،
نه به ذکر است بسیار حافظه های کوچکتر است.
در مورد دوم، شما به باید انجام دهید این رفت و آمد مکرر [آوایی]
به مقایسه رشته که در خود را با خطی
در اندازه رشته به طور بالقوه.
بنابراین، آن را فقط خوب بهینه سازی،
و به طور خاص آن را
به ما اجازه انجام چه نامیده می شود می پیوندد موثر تر
در یک لحظه.
بنابراین اجازه دهید کار را انجام دهید.
ما مشخص است که این اصلی است
چون من نمی ویژه می خواهم به مراقبت و یا فکر می کنم
در مورد چه تعداد است از یک دوره.
اجازه دهید آنها را در هر آنچه که ارزش آنها می خواهند.
من قصد دارم برای گفتن افزایش خودکار بنابراین من می توانم که جزئیات برون سپاری.
همانطور که در کنار شما ممکن است می دانیم که دانشگاه هاروارد
حداقل دارای منحصر به فرد اعداد برای دوره های.
من هیچ خاطره آنچه در این دوره است.
من می دانم که CS50 را تعداد فروشگاه 4949 است،
کاملا خودسرانه.
اما عجیب و غریب وجود دارد موارد گوشه در که حتی
در روگرفت registrarial البته کاتولوگ داده ها،
گاهی اوقات دوره های، قدیمی دوره های یک عدد مانند 4.
اما از لحاظ فنی که درست یک میدان کاراکتر است
که به سادگی با 0004 شروع می شود.
بنابراین در اینجا بیش از حد، شما باید مراقب باشید در مورد تشخیص
بین چیزهایی مانند البته تعداد فروشگاه
که ممکن است برخی از انسان دارند مفهوم طول ثابت، 0004،
و شما باید ذخیره نمی کند که به عنوان مثال در یک نوع داده int.
این نوع از فیلد باید در جای دیگر ذخیره می شود.
بنابراین در دانشگاه هاروارد، اگر ما بود در واقع ساخت یک دوره
ابزار خرید، آن را احتمالا کافی نیست
به دوره تعداد تنها با 1، 2، 3، 4.
ما احتمالا در حال رفتن به
به یکی دیگر از زمینه نام تعداد فروشگاه،
دارد که آن نیز قرار باید منحصر به فرد بر اساس
در کنوانسیون های انسانی در اینجا اما این بهترین انتخاب است
برای یک شناسه منحصر به فرد به دلیل ممکن است آن را با طول متغیر.
این ممکن است چهار کاراکتر، ممکن است پنج.
در واقع، من فکر می کنم چند سال پیش آنها حرکت
به علت پنج شخصیت وجود دارد بیش از 999 دوره بود
در کل و یا چیزی شبیه که، یا 9999 دوره.
بنابراین، که ممکن است به عنوان مثال که در آن زمینه می باشد اولیه است
اما باید منحصر به فرد باشد.
و آدرس ایمیل یکی دیگر است.
شما ممکن است بخواهید آن را به صورت منحصر به فرد
اما نه لزوما کلید اولیه خود را.
بسیار خوب.
بنابراین اجازه دهید صدای بلند از دیگری جدول بسیار سریع تر از این یکی.
بنابراین من قصد دارم به این یکی از مدرسان و من قصد دارم
به این مجموع تعداد ستون ها از دو.
من قصد دارم به یاد من درس را از زمان گذشته است.
من قصد دارم به تماس در ستون اول ID.
من قصد دارم به تماس دوم نام ستون.
من هم رفتن را به انجام varchar ها.
من قصد دارم به فرض هیچ استاد یک نام دیگر
از 60 کاراکتر، هر چند در حال حاضر این ممکن است هل دادن آن
با برخی از نام های طولانی، ویژه مردم با نام وسط.
این خوب است برای امروز.
پس بگذارید در این حرکت بیش از.
اجازه دهید این علامت را دوباره.
بیایید این اصل است.
و ما به نام های تکراری اجازه می دهد
در مورد دو جان وجود دارد چیزی شبیه به آن را اسمیت و یا.
و در حال حاضر ما دو جدول.
بنابراین در حال حاضر، این مستلزم سوال چگونه ارتباط I
در مدرس با دوره؟
من مثل من از نوع احساس جلوتر از خودم کردم
چرا که اگر یک مربی می آموزد که البته،
غریزه اول من خواهد بود در واقع می شود برای رفتن به عقب
به دوره های متوجه، این بود ایده خوبی نیست.
اجازه بدهید من در واقع یک ستون اضافه کنید در پایان جدول،
برو کلیک کنید، و من این مربی تماس بگیرید.
و من این VARCHAR را و من در این 60 را.
و شاید من آن را در حال حاضر ترک تهی
در مورد این دوره نیست در مربی بدون علامت
که گاهی اوقات قبل از اتفاق می افتد مدت شروع می شود و ذخیره را کلیک کنید.
کدام یک از این طرح ترجیح می دهید؟
اول که در آن ما یک جدول استاد جداگانه
و یا دوم که در آن ما فقط اضافه کردن فیلد به دوره؟
پس از آن از نزدیک پیوند دارند مربی همراه با درس.
[نکته نامفهوم]
OK. خوب. اما اجازه دهید به عقب براند.
این خیلی ساده مانند من می توانم فقط نام شخص را تایپ کنید
در این جدول، مانند قطعا است که برخی از ارزش و یا -؟
[نکته نامفهوم]
بسیار خوب.
خوب، اجازه دهید من دشوار است در اینجا.
بنابراین اجازه دهید بگویم که این دوره CS51 است
و من می دانم آن را آموخت در سال جاری توسط دو نفر.
بنابراین، هنری لایتنر و جسی TOV اما -
بنابراین من فقط با قرار دادن یک کاما بین این دو، درست است.
من واقعا در خوب CSV از گذشته.
[نکته نامفهوم]
دقیقا، درست است.
به محض این که شما توسل به چیزی شبیه به این،
که ممکن است احساس کنید معقول و شما ممکن است احساس
مثل این است نوع هوشمند.
من نوع وام گرفتن از یک ایده این است که به خوبی کار می کنند،
قرض گرفتن ایده های جدید و مرتب کردن بر اساس آنها را ترکیب.
شما نوع کاملا شکست نقطه با استفاده از پایگاه داده
در علت وهله اول ' اگر یکی از مقادیر
استفاده از آن جستجوهای سریع تر است چرا که از شاخص های مختلف
و جداول است که می تواند شود تا برای شما ساخته شده است
توسط موتور پایگاه داده خود را.
در حال حاضر، اگر شما می خواهید برای جستجو برای همه دوره ها
که جسی می آموزد، در حال حاضر شما باید برای انجام زیر رشته تطبیق در تمام
از زمینه های مربی،
که به طور موثر به معنای خطی جستجوی دوباره چون شما
برای پیدا کردن این مجموعه دلخواه سه شخصیت در هر نقطه
در زمینه مربی قبل
در شاید به دنبال توسط کاما.
بنابراین این قطعا به خوبی جواب نمی دهد.
بنابراین اجازه دهید من به بازگشت به میز.
اجازه بدهید من به جلو به دوره ها، خنثیسازی که.
من قصد دارم فقط به پیش رو و رها کردن آن رشته است.
و اگر شما می خواهید این کار دستی،
نحو جدول را تغییر دهید است دوره های DROP مربی.
بنابراین اجازه دهید به جلو و می گویند بله به آن.
و به بازگشت به این ایده قبل از آن
که در آن I جداگانه داشته باشد جدول برای مدرسان.
اما در حال حاضر این احساس کمی مثل من می تواند یک دوره قرار داده
در جدول درس و مربی
در جدول استاد است اما من به نحوی نیاز به لینک دو.
و چگونه می خواهید پیشنهاد ما انجام این کار؟
[نکته نامفهوم]
خوب. بنابراین اجازه دهید کار را انجام دهید.
و شما می توانید از این تماس بگیرید جدول در هر چیزی تئوری.
من قصد دارم به عمد آن را چه بسیاری
چارچوب را از آن تماس، در میان آنها،
Laravel به عنوان شما را در یک بیت را ببینید.
من قصد دارم به آن را البته تاکید مدرس.
با استفاده از منحصر به فرد در این مورد برای هر یک از کلمات
و تمام حروف کوچک دوباره، و همچنین با -
سپس بر اساس حروف الفبا از چپ به راست مرتب شده اند.
این کاملا به دلخواه اما این امر منجر به یک قرارداد
در بسیاری از این چارچوب در PHP در زبان های دیگر.
چه تعداد ستون ها را در نیاز من این چیزی است که ما با یک جدول بپیوندد،
برای پیوستن به دو نفر دیگر جداول با هم؟
سه ستون؟
کدام یک - چه خواهد بود؟
[نکته نامفهوم]
OK. خوب. این نسخهها کار میکند.
و ما می تواند از لحاظ فنی قطع یک گوشه در اینجا اما بسیاری
چارچوب به ویژه هنوز هم به من بدهید حتی این ردیف
شناسه منحصر به فرد است حتی اگر معنایی ردیف
که ما واقعا در مورد مراقبت یا ستون است که ما واقعا اهمیت
در مورد دو مورد آخر از آنچه شما گفت، البته ID
و ID مربی.
بنابراین اجازه دهید این کار را.
من این ردیف فقط ID تماس بگیرید، درست مثل ما قبل از انجام.
اما این یکی که من قصد دارم به دوره ID تماس بگیرید.
این یکی من قصد دارم مربی ID تماس بگیرید.
و من قصد دارم به مشخص است که همه
از آنها بدون علامت چون من می خواهم
به حداکثر رساندن 4 من میلیارد دامنه بین المللی.
هیچ یک از آنها باید تهی باشد.
من قصد دارم مشخص است که ID هنوز هم باید اولیه باشد.
و باز هم، این است که فقط یک قرارداد،
بسیاری از چارچوب حتی اگر شما مرتب نکن
از اساسا نیاز به یک شناسه منحصر به فرد برای ردیف،
که معلوم است آن را مناسب برای کد، SQL که رفتن
به طور خودکار تولید برای ما.
پس من به عنوان اولیه ترک که.
اما در حال حاضر، من از نوع یک تصمیم طراحی،
ID البته و مربی ID.
چه شاخص در صورت وجود باید آنها را دریافت کنم؟
اگر من هیچ شاخص ترک، چه مفهوم است؟
مفهوم چیست؟
عملکرد به عنوان قبل از، درست است؟
اگر هیچ شاخص وجود دارد، بهترین شما می توانید انجام نوع است
از [نامفهوم] از طریق تمام چیزی که به دنبال اعداد.
به طوری که این احساس های هوشمند نیست.
باید اولیه آن می شود؟
چرا که نه؟
چرا اولیه نیست؟
[نکته نامفهوم]
کامل. بنابراین ما رول از [آوایی] اولیه.
ما در حال حاضر انتخاب شده است.
بنابراین، باید آن را منحصر به فرد باشد؟
[نکته نامفهوم]
خوب. بنابراین، اگر شما فرض یک مربی در هر دوره،
کاملا خوب است.
و این قطعا مورد شایع
اما ما در حال حاضر از سر باز کردن یک به عنوان مثال شاید آشنا.
CS51 کردم دو مربیان بنابراین ما مهربان هستید
از هم اکنون در آن صورت پیچ.
اگر ما اجازه می دهد تنها یک مربی،
ما در واقع می تواند یک راه با پیوستن به جدول در دسترس نباشد،
بازگشت به روش های قبلی
قرار داده و به نام شخص نمی شاید اما ID مربی است.
اگر شما هر البته می دانم که به عنوان تنها یک مربی شما می توانید فقط
یک ستون.
اما تنوع است آنچه که ما را دچار مشکل میکرد.
بسیار خوب.
بنابراین، باید آن را منحصر به فرد باشد؟
شماره متن کامل نمی کند احساس قابل اجرا است.
همانطور که می گفت: قبل از این که
برای مثل زیر رشته تطبیق برای توصیف.
بنابراین آنچه در مورد صفحه اول؟
خوب، شاخص احتمالا بهترین نامزد ما
که می گوید بهینه سازی خروجی زیر برای جستجو در این
یا به من اجازه استادانه درست شده، بهینه سازی برای جستجو و یا می پیوندد
که ما را در یک لحظه را ببینید
به طوری که آنها می کمی کارآمد تر
از هر چیز کاملا خطی است.
آیا من به خودکار می خواهم افزایش این زمینه؟
بنابراین هیچ، چرا که درست عنصر پدر و مادر وجود دارد
در جدول دوره های '.
در این جاست که آن را رفتن به علاوه،
به علاوه هنگامی که آن را در واقع وارد می شود.
در اینجا، این است که همه رفتن به صورت دستی وارد می شود
توسط ما احتمالا در کد.
بنابراین اجازه دهید به سادگی مشخص که هر دو البته ID
و مربی ID باید شاخص.
در حال حاضر ما میام جلو و ذخیره کنید.
و در حال حاضر، فقط برای نشان دادن شما مکاتبات
بین چه خوب GUI رابط کاربری دوستانه
و رابط خط فرمان.
به من اجازه دهید به جلو و انجام زیر را در این مهلت داده.
من قصد دارم برای گفتن استفاده courses50
است که به نام دلخواه من به این پایگاه داده است.
و در حال حاضر، من حتی نمی به یاد داشته باشید آنچه که ما انجام دادیم.
بنابراین اجازه دهید من جدول نشان می دهد نوع
و به طور کلی سمی کالن نمی شود از دوستان خود را در اینجا
برای به پایان پرس و جو.
و وجود آن است.
بنابراین در اینجا ردیف و یا به جای می جداول است که ما را در اینجا.
در حال حاضر، من فراموش کرده ام چه البته به نظر می رسد،
بنابراین اجازه دهید من می توانم توصیف دوره و در حال حاضر من می بینم نوع ASCII
و یا یک نسخه از آنچه که از phpMyAdmin انجام شده بود
و من می بینم که ID از نوع int است.
این است که 10 وجود دارد.
به چه معنا است؟
این تنها بدان معنی است که زمانی که آن را نمایش داده آن را به
تا 10 کاراکتر در پنجره ترمینال.
آیا خالی ماندن؟
شماره این کلید اصلی است.
می توانید آن را به یک مقدار پیش فرض؟
شماره و فوق العاده است که خاص پرچم مانند افزایش خودکار.
بنابراین اجازه دهید فقط یک زن و شوهر درج سریع در اینجا.
من قصد دارم برای رفتن به بالا به - اجازه دهید فقط می گویند.
اجازه دهید دولت به یک اسلاید را تغییر دهید
جایی که من نوعی از پیش آماده این.
این خلاصه پس از آن از است هر سه از آن جدول.
من در حال حاضر فقط به صورت دستی دستور اول تایپ.
و در اینجا، من جلو رفتم و نوع دیگر برای شما.
این فقط چیزی که سبکی.
به طور کلی، بسیاری از مردم نوع اظهارات SQL در همه کلاه
و سپس نام جدول و نام فیلد در صورت پایین تر،
اگر فقط به این دلیل آن نوع استند
از چه اصطلاحات خود را و چه نحو پایگاه داده است.
بنابراین در اینجا ما سه جداول، دوره ها، مربیان،
و دوره های مدرسان.
در اسلاید I در پیش ساخته شده است، من درست است ID ندارد
اما در واقع نه یک چیز بد در همه.
ما فقط یک ستون سوم وجود دارد.
من انجام داده بودم که اینجا هستید؟
بنابراین در حال حاضر اجازه دهید به من پیشنهاد می کنند که ما یک دسته از اضافه.
بنابراین در اینجا برخی از داده ها است، من زوم شوید
من می خواهم به پیشنهاد که در دوره های،
ما تنها با سه دوره رسیدگی کند.
و من انتخاب این سه چون آنها نماینده هستید
برخی از خوب - آنها برخی از خواص خوب.
CS1، CS50، CS51، آنها باید افزایش شناسه
اما آنچه ID چیزی است که کاملا بی ربط است.
این تنها نظم است که در آن آنها خودکار توسط من قرار داده شد.
چگونه در مورد مدرسان؟
بنابراین در حال حاضر، به دلیل هنری لایتنر می آموزد که هر دو CS1 و CS51،
این نوع از مناسب است مفهوم طراحی ما.
و جسی می آموزد CS51 و مالان می آموزد CS50.
بنابراین در حال حاضر - و یا به جای این تنها شناسه های منحصر به فرد آن مردم است.
و دوره های آموزشی و مدرسان، - مدرسان البته، در اینجا اطلاع می دهد.
ID1 دوره، که شد CS1 آموزش داده می شود
توسط استاد ID1 که هنری است.
ID2 دوره، که من فکر می کنم بود CS50 آموزش داده می شود
توسط استاد ID2، است که مالان.
و سپس در آخر، CS51، و توجه ما باید دو ردیف.
و در حال حاضر این است که چرا بپیوندید جدول قدرتمند آموزش داده شده است
هر دو هنری و جسی.
پس این همه خوب و خوب است،
اما من به سختی می تواند به یاد داشته باشید از بالا
سر من است که که در اینجا.
چگونه می توان مقابله با آن در کد،
بدون نیاز به چیزهایی که کد سخت؟
خوب، این که SQL خود است شروع به تبدیل شدن دوستان ما.
و من قصد دارم به پیشنهاد که ما می توانیم موارد زیر را تایپ کنید.
من این را در در انجام سریع واقعی.
اجازه بدهید به پیش بروید و قرار دادن این چیزها.
بنابراین، به جدول دوره های آموزشی اجازه دهید کار را دقیقا همان چیزی است که ما تا به حال یک
لحظه پیش.
من قصد دارم به جلو و می گویند، اجازه دهید وارد کردن CS1 و CS50.
اجازه دهید وارد کردن چند ردیف در یک بار، CS51.
در حال حاضر، اجازه دهید من به جلو و ذخیره کنید.
خوب، بنابراین من فقط هستم دوباره به سرعت
که من می توانم روابط ما فقط بر روی صفحه نمایش را دیدم.
و بنابراین، در اینجا ما لایتنر، در اینجا ما باید مالان.
بیایید خودمان را ردیف دیگری، و TOV.
حالا اجازه دهید من این را نجات دهد.
و من آنها را انجام عمد به منظور همان.
نه، من را فراموش کرده به این افزایش خودکار.
به من اجازه دهید به سرعت این مشکل را برطرف.
من این را در رفع کد آنلاین.
که به عنوان یک کنار شکست خورده است.
واقعیت این است که من نمی توانست درج لایتنر و مالان
و TOV شکست خورده، چرا که من نمی شماره ID را مشخص حتی اگر
آن را انتظار یک و I فراموش برای بررسی افزایش خودکار،
این بدان معناست که تمام شد به طور پیش فرض صفر.
اما پس از آن در تضاد است که اموال که ما مشخص کرده ایم.
کلید اصلی نقض شد پس از آن حتی به من اجازه این کار را انجام.
بنابراین اجازه دهید من این تعمیر.
در حال حاضر، به من اجازه رفتن به قرار دادن زبانه اینجا و مشخص
که من می خواهم لایتنر، مالان و، یک ردیف بیشتر، TOV.
و در حال حاضر در نهایت، تنها یکی که کمی سخت
به خاطر داشته باشید البته مربی.
حال، قرار دادن که البته ID1 مربی ID1 است
به طوری که CS1 و هنری است.
ID2 استاد درس است ID2 است که CS50 و مالان.
و سپس آخرین و آنهایی که ما به نگرانی نیست البته ID3
است که CS51، آموزش داده
توسط استاد درس 1، که هنری.
و سه عنوان نیز تدریس 3، که آن TOV.
پس امیدوارم اکنون ما این دوباره ام -
لعنت به آن، من هم همین کار را کرد.
درس نیاز به افزایش خودکار.
بسیار خوب.
من این سریع تر را انجام دهد در این زمان، البته 1، دوره 1، 2، 2.
و در حال حاضر در نهایت، ما CS51 که البته ID3 و هنری.
و البته ID3 و جسی.
که به نظر می رسد خوب است.
OK. بنابراین در حال حاضر، اجازه بازگشت به پنجره ترمینال.
بنابراین اگر I توصیف دوره های ما این ها را ببینید.
اگر من می خواهم برای دیدن دوره من می توانم در حال حاضر ستاره از دوره ها را انتخاب کنید،
نیمه روده بزرگ، و در حال حاضر ما آن ارزش ها را ببینید.
و در حال حاضر، چه چیز دیگری آیا من می خواهم کاری انجام دهید؟
ستاره انتخاب از استادان، که من به عنوان انتظار می رود،
و ستاره را انتخاب کنید از دوره - استاد دوره زیرین.
پس چگونه من در حال حاضر بپیوندید این جدول؟
بنابراین زیبایی از انتخاب ارزش ID در این راه است
که اگر شما در مورد فکر می کنم در نظر گرفتن جدول البته
و مربی جدول و سپس قرار دادن
در میان این دو در خود ذهن به درس
جدول شما می توانید نوع خط تا همه از این ستون ID
به طوری که شما آنها را ادغام یک ستون عظیم است که تمام
از اطلاعات ما در مورد مراقبت.
نحو SQL برای این لزوما آشکار نیست،
اما اجازه دهید ببینیم آیا می توانیم آن را انجام دهد.
ستاره بنابراین انتخاب کنید و از دوره ها،
و یک راه چند وجود دارد که ما می توانیم این کار را انجام.
من قصد دارم به ضربه را وارد کنید فقط به نوع چیزهایی فرمت سادگی،
اما این فلش فقط یک نشانه ای از ابزار سمت سرویس گیرنده،
آن را تا به چیزی برای با SQL خود را.
ستاره بنابراین انتخاب کنید و از دوره.
من قصد دارم به تاریخ جدول دوره های آموزشی
در جدول درس.
چگونه؟ در این زمینه به نام البته برابر courses.id
تاکید مربی نقطه چه نام است
از بخش مربوطه در اینجا است که من می خواهم یک زن و شوهر.
این ID نیست.
It's - چه، ببخشید؟
>> شماره درس.
OK، به من اجازه زوم کردن.
اما من می خواهم به این یک قدم بیشتر.
من در حال حاضر از این انجام داده ام جدول و این یکی.
حالا من می خواهم به جلو این پسر در نیز هست.
بنابراین، به من اجازه دهید بیشتر عضویت در این که کل آن
در استاد جدول چه؟
تاکید دوره شناسه instructor.instructor
برابر instructors.id.
بنابراین ما می تواند نوشته شده است این پرس و جو در چند راه.
منظور که در آن من این را همه که مهم نیست.
من فقط نوع آن را در انجام ذهن من از چپ به راست.
ما می توانیم این را انجام داده اند در چند راه مختلف
اما اگر من در حال حاضر روده بزرگ نیمه و آمار را وارد کنید،
توجه من به عقب بر گردیم جدید جدول موقت، مجموعه ای نتیجه
به طوری که در پایگاه داده صحبت می کنند صحبت می کنند.
و چه دارم در این چیز؟
من در ID، نام، دیگری ID، که نوع گیج کننده
من در حال حاضر، ID البته،
مربی ID، ID، و نام.
بنابراین، در پایان روز ما از اطلاعات در حال حاضر.
من می توانید ببینید که CS1 آموزش داده می شود توسط لایتنر، CS51 آموزش داده می شود
توسط لایتنر و TOV، و CS50 توسط مالان تدریس می شود.
اما من کمی در مورد عصبی این ابهام من ایجاد کرده اید.
ابهام چیست من ضمن اشاره به؟
آره؟
[نکته نامفهوم]
سه ستون ID وجود دارد.
پس ما در واقع می تواند این مشکل را رفع و ما قصد داریم در واقع رفتن
به تسلیم به چارچوب ما در نهایت به ما کمک کند با این،
اما معلوم است وجود دارد که کلمه کلیدی در SQL به نام S،
که در آن شما می توانید مشخص کنید نام مستعار، نام جدیدی را برای یک فیلد
به طوری که ما می توانیم این اجتناب از ابهام در دسترس نباشد.
اما متوجه شدم که اگر ما نمی کنند آدرس آن را به نحوی که با
که کلمه کلیدی یا یک چارچوب،
این به طور بالقوه وجود دارد ابهام اگر شما سعی می کنید
برای دسترسی به حوزه ID زیرا به وضوح می آنهایی که وجود دارد
با نام های تکراری وجود دارد.
پس این است که پیوستن و من فکر می کنم در چشم ذهن خود را بهترین راه
در مورد آن فکر می کنم واقعا این است که دو جدول،
خط آنها را در راه که می خواهید.
و این است که به اصطلاح داخلی به معنای بپیوندید
که ما در حال ترکیب جداول در اینجا.
انواع دیگری از وجود دارد می پیوندد که ما ممکن است برخورد
در طول زمان مثل بیرونی می پیوندد،
اما در بیشتر قسمت ها این است که احتمالا رایج ترین
برای بازسازی داده ها.
آنچه ما اکنون انجام داده اند به طور کلی آنچه به نام
عادی سازی داده های خود را، به طوری که هیچ تکراری در هر نقطه وجود دارد
در جداول خود را.
و با تکرار، من به معنای کرده اند که روش اول.
اگر ما لایتنر ذکر شده بود و TOV در مکان های متعدد
در پایگاه داده خود را، که نیست به طور کلی بهترین تصمیم
به خصوص اگر نام قدرت خود تغییر اضافه کاری و یا در مورد
ازدواج، نام قبل از ازدواج ممکن است شما فقط می خواهید یک خود را تغییر دهید
محل متعارف برای برخی از ارزش داده ها مانند نام.
بسیار خوب.
بنابراین، به روکش، ما تا به حال چند تصمیم گیری های طراحی را
و مهمترین آنها احتمالا به برخی کاهش می یابد
از این گزینه از شاخص.
اما به من اجازه اشاره یک چیز دیگر نیز هست.
اگر من به بازگشت به phpMyAdmin،
یکی از ویژگی های شما ممکن است مواجه می شوند قبل از
به شرح زیر است.
اگر من به درس بروید، من در حال حاضر مشخص است که برخی از
از این چیزها باید شاخص.
اما اجازه دهید به ساختار بروید تب از درس.
اکنون اجازه بدهید با کلیک بر روی شاخص و متوجه زیر است.
من در اینجا مشخص شده که یک کلید اولیه وجود دارد
در ستون به نام ID.
این تا حدودی پیچیده راه تعیین کاردینالیتی
و غیره به عنوان مراجعه کننده به اندازه درست کلمه در ادامه متن.
اما در حال حاضر من هم یکی دیگر از درست است، ID البته، این است که -
البته ID است که انجام می شود در پیشبرد و منحصر به فرد، OK.
من این یکی در بود پیشرفت برای ما.
بنابراین، به همین دلیل این است - اجازه دهید من رها این به خاطر بحث.
اوه، شما می دانید آنچه من انجام داد؟
OK. بنابراین، قبل از آن، یکی از خطرات استفاده از ابزار GUI
مثل این، زمانی که ما بودند ایجاد این ملحق جدول،
جدول درس، به یاد آورید که من مشخص
که من می خواهم صفحه اول در این زمینه
و شاخص در این درست است دیگر.
عوارض جانبی چک کردن هر دو جعبه
بر روی صفحه نمایش همان است که phpMyAdmin به استنباط از آن،
که من می خواهم دو فهرست جداگانه،
که من می خواهم یک شاخص بپیوندند که عموما تنها مفید
یا بیشتر مفید هنگامی که شما جستجو در یک زمینه نیست
اما هر دو از این زمینه ها.
و به همین دلیل ما تا به حال آنها را قرین شدن وجود دارد
بنابراین من آن کاهش یافته است چون که چیزی بود که من در نظر گرفته شده است.
در عوض، من قصد دارم به انجام دوباره این اینجا.
من قصد دارم برای رفتن به ID البته
و حتی بیشتر من فقط رفتن به می گویند اضافه کردن شاخص.
و من قصد دارم به زیر مربی ID و می گویند اضافه کردن شاخص.
و در حال حاضر اگر ما اینجا را کلیک کنید، متوجه ما سه شاخص،
یکی اولیه و به عنوان I در نظر گرفته شده برای هر
از این کلید های خارجی است.
و من به آن خارجی به دلیل ID البته در این جدول نقشه
که درست است، فقط به روشن، در یکی دیگر از جدول.
کلید اصلی به نام ID، در جدول نام دوره ها،
و همان معامله را برای دیگری.
اما در حال حاضر، جالب است فوت و فن و واقعا روش.
من فقط رفتم جلو و به من اجازه انجام این کار به آرامی کمی بیشتر است.
در همان صفحه، اطلاع آن را می گوید نظر ارتباط در اینجا.
من این را کلیک کنید و در حال حاضر من متوجه را وادار به انجام چند محدودیت.
بنابراین، یکی از شاهد رشد آمارهای نیز
نه تنها با استفاده از مفهومی کلید های خارجی و جداول دیگر
مانند ما تنها در است که با تعریف شاخص
بر روی آنها شما می توانید از پایگاه داده به کمک شما حتی بیشتر
اطمینان از یکپارچگی از آن رشته است.
به طور خاص، من در حال حاضر می توانید مشخص را از طریق این قطره
پایین که زمینه البته ID
در این جدول در واقع نقشه به courses.id.
به طور مشابه، تاکید مربی ID نقشه برداری instructors.id.
حال چرا این مفید است؟
خوب، توجه، در سمت راست سمت آنچه در حال حاضر به نظر می رسد.
من هم اکنون می توانید آموزش پایگاه داده که اگر هنری
به عنوان مثال تا کنون بازنشسته و ردیف خود از بین می رود
از جدول استاد در مجموع نتیجه بودن
حذف شده، من می توانم از طریق این آبشار رویکرد اطمینان
آن است که هر دوره او می آموزد است دیگر با او همراه است.
من می توانم در پایگاه داده آموزش به حذف ردیف
در این به اصطلاح میز بپیوندید به صورت خودکار در صورت هنری و یا اگر یکی
دوره های آموزشی خود از بین می رود.
حال چرا این قانع کننده است؟
آره؟
[نکته نامفهوم]
شما فقط مجبور به این کار یک بار و بلند مدت، درست است؟
این بسیار آسان است اگر نوع مردم می آیند و می روند، دوره آمده است
و می روند، پایگاه داده خود را می تواند فقط با دوره های آشغال
و با دانشکده، که هیچ دیگر به مجموعه داده های مربوطه.
و اطلاعات خود را شروع به دریافت کنید بسیار کثیف و کثیف و کهنه،
و بنابراین در اینجا ما می توانیم مرتب سازی بر اساس
از به اجرا درآوردن برخی از این محدودیتها.
آره؟
[نکته نامفهوم]
این از طریق این را می داند.
این صفحه نمایش است که در آن ما در حال تعیین ارتباط
بین کلید خارجی و کلید اولیه.
پس همه از نامگذاری کنوانسیون من اشاره
به پیش از آن فقط کنوانسیون می باشد.
هیچ معنای ذاتی وجود دارد.
این صفحه نمایش است است که تنها مفید
پس شاخص در شما مشخص هر یک از این زمینه ها که ما انجام داد.
و برای این کرکره ما چند چیز به عنوان مثال
اگر یک دوره حذف شده است شما می توانید در واقع جلوگیری از حذف
از این اتفاق، اگر وجود دارد یک ردیف در این جدول است
تنها با گفتن، محدود.
به عبارت دیگر هنری نمی تواند بازنشسته
تا زمانی که ما از او جدا از CS51 و CS1.
به طوری که یک کار خوب است.
اما آن می تواند باعث خطا در کد شما
اگر شما پیش بینی نمی کند که، و یا ما می توانیم یک آبشار را داشته باشد،
آبشار شبیه به دوست شیوه نامه آبشاری
و آبشار آبشار بدان معنی است که اگر -
اگر هنری بازنشسته تا - با گرفتن حذف
خواهد شد ردیف خود را در اینجا حذف کنید.
بدون اکشن به معنای چیزی یا تهی نوع مفید است اگر شما نوع
از می خواهم برخی از اسناد تاریخی هنری که CS51 آموزش داده،
اما شما فقط می خواهم که درست به تهی می شود به طوری که ردیف وجود دارد
اما دیگر نمی همراه با او.
بنابراین این بسیار قدرتمند می باشد تکنیک های که شما می توانید
و باید هر چند استفاده از حتی در علاقه ویژه
صرفه جویی در شما از خودتان.
بنابراین اجازه دهید اشاره ای به زن و شوهر از جزئیات نهایی در اینجا،
مواد تشکیل دهنده که با آن که ممکن است کمک کننده باشد
همانطور که ما برای طراحی پایگاه داده برنامه ریزی.
شما همچنین انتخاب کرده اند بیش از موتور پایگاه داده
که شما در کد خود استفاده کنید.
اگر شما آشنا از CS161 شما ممکن است -
و یا حتی 61، شما ممکن است به طور کلی با فایل سیستم آشنا باشد.
و این همه چیز وجود دارد مانند، NTFS و HFS +
و X2FS4 [آوایی] و 3 و غیره.
به روش های مختلف وجود دارد از ذخیره سازی داده ها بر روی میز.
به طور مشابه وجود دارد روش های مختلف ذخیره سازی اطلاعات
در یک پایگاه داده به طور پیش فرض حداقل در لوازم خانگی
با آخرین نسخه از MySQL.
ما با استفاده از موتور پایگاه داده نامیده می شود، NoDB،
است که پشتیبانی از چند ویژگی های خوب.
اما یک مشترک دیگر نیز نام MyiSAM و در عین حال یکی دیگر از
است که می تواند استفاده از حافظه است، که به معنی هر چیزی قرار داده نشده
بر روی دیسک، فقط نگه داشتن همه چیز در حافظه است.
در اکثر موارد شما احتمالا نمی خواهد به اشتباه تنها با شروع
با NoDB، اما برای هر پروژه که تمایل به درگیر نرخ بالا
از درج به عنوان مثال، مانند بسیاری از ورود به سیستم سریع،
صدها نفر از چیزهایی که در هر ثانیه و یا هزاران چیز.
هر زمان که شما یک بسیاری از چیزهای رفتن
در در پایگاه داده پس از آن این نوع
تصمیم گیری های سطح پایین شروع به درگیر شدن.
از ویژگی های متن کامل به عنوان مثال تنها در MyiSAM کار می کند
به طوری که دارای یک مفهوم.
اما شما ممکن است این فراخوان، اجازه دهید حداقل ایجاد انگیزه چرا ما مراقبت
در مورد NoDB در خاص است.
شرایط مسابقه به طور کلی به چه چیزی اشاره دارد؟
خوب، این یک اشاره به عنوان مثال برخی از
از شما ممکن است در شنیده سال گذشته که آیا 161 یا 50
که در آن شما یک هم اتاقی، هر دو از شما واقعا دوست دارم شیر،
یکی از شما به خانه اول باز می شود یخچال هیچ شیر وجود دارد،
بستن راه رفتن یخچال در سراسر خیابان ها به CVS و دریافت
در خط به خرید برخی از شیر است.
در همین حال، هم اتاقی شما می آید به اینجا.
او همچنین دوست دارد شیر است.
باز کردن در یخچال و متوجه هیچ شیر.
در اینجا او سپس به رود ذخیره، شاید CVS دیگر.
سریع به جلو چند دقیقه بعد از آن شما به پشت و در حال حاضر هر دو
از شما شیر خریداری شده است.
یکی از آنها در حال حاضر به رفتن به از بین بردن به خاطر شما نیست
مثل شیر که از حد و این یک مشکل است، درست است؟
از آنجا که هر دو از شما بازرسی دولت از برخی از متغیر
و یک تصمیم بر اساس بر روی آن حتی اگر دولت
از این متغیر در اصل در فرایند بودن تغییر،
تمام می شود آن را به آرامی از مدت زمانی که طول می کشد
به به به و از CVS.
پس چه نوع احمق واقعی است راه حل های جهان به این مشکل؟
دیدگاهتان را توجه داشته باشید، درست است؟
این اتفاق افتاد زمان آخرین.
همیشه توجه داشته باشید و یا ترک قفل چیزی که به معنای واقعی کلمه.
و من می گویم قفل، به دلیل اگر شما را و یا CS161 و جو در زمان،
قفل های اساسی است ایده در این نوع از جهان است.
بنابراین شرایط مسابقه می تواند بوجود می آیند همچنین در جهان پایگاه داده
و شما ممکن است شاید از به یاد CS50 تامین مالی اگر شما در زمان 50،
این کد که ما در واقع به شما در خصوصیات بچه ها
در آن زمان به طوری که شما عملیات به اصطلاح اتمی است.
اگر شما به، در این خواستم مورد خرید یک سهم از سهام
و این که سهام است برخی از نماد خاص است.
به ما گفته شما را به استفاده از کد این، چرا که از طریق این
در تکراری به روز رسانی کلیدی نحو، که ساخته شده است
به خروجی زیر شما به طور موثر هستند انجام هر دو در درج
و یا در به روز رسانی پس از انجام انتخاب کنید تا ببینید
اگر سهام در حال حاضر در آن وجود دارد.
به عبارت دیگر، آنالوگ در جهان از خرید سهام
شیر و یخچال ممکن است، برای اولین بار،
قبل از خرید یک سهم از گوگل شما ممکن است بخواهید انتخاب کنید
از پایگاه داده تمام سهام گوگل که دیوید صاحب
برای دیدن اگر او دارای صفر یا بیشتر.
هنگامی که شما ببینید که آیا او صاحب صفر یا بیشتر از شما
سپس زیر را انجام دهید.
شما یا باید انجام دهید قرار دادن
اگر او خود علت صفر ' هیچ ردیف برای دیوید وجود دارد در عین حال،
و یا شما را مجبور به انجام به روز رسانی اگر حداقل در تئوری شما می خواهید
به یک ردیف برای هر کاربر.
مشکل این است که انتخاب که تعداد سهام
و پس از آن به روز رسانی و یا قرار دادن می تواند به قطع
توسط شخص دیگری در یکی دیگر از ترمینال کامپیوتر در تلاش برای خرید
و یا فروش برخی از دیوید سهام چه
برای اهداف خوب یا مرتب سازی بر از اهداف مخرب.
آن را مانند رفتن به فروشگاه است وقتی که هم اتاقی خود را به عقب می شود
و چک دولت متغیر.
بنابراین این ترکیب نحوی در زمان که نوع مناسب بود
برای CS50، اجتناب می کند که مشکل در دسترس نباشد.
و آن را فقط به همه از آن سحر و جادو از قفل کردن برای شما،
اما در حال حاضر با این نوع پروژه های این دوره
که به احتمال زیاد خواهد شد شامل مجموعه داده های پیچیده تر،
شما نمی توانید به رسیدن به همیشه این اتمی.
همه چیز اتفاق می افتد در یک بار یا نه در همه
بدون وقفه بنابراین زیبایی.
و به این ترتیب خروجی زیر، یکی دیگر از موتور پایگاه داده،
چیزهایی پشتیبانی به نام قفل،
به موجب آن شما می توانید قفل می گویند این جدول به طوری که تنها یک درمان
و به طور کلی فقط یک کاربر می تواند لمس آن را در هر نقطه در زمان
به خواندن و نوشتن و سپس شما می توانید آن را باز کند.
این یک نمونه از یک است از منابع خود خروجی زیر است،
که در آن اگر شما مانند یک بانک حساب کاربری که شما در تلاش هستید
به کسر پول از و پس از آن پول را به اضافه کنید.
شما ممکن است به خواهید مطمئن شوید که هر دو
از کسانی که همه چیز با هم اتفاق می افتد
به طوری که هیچ وجود دارد خطاهای ریاضی
و هیچ ضرر و زیان یک پول، به نحوی.
مشکل با قفل هر چند در یک پایگاه داده است
که این به آن معناست کل جدول بسته شده است.
که بدان معنی است اگر شما صد مردم در تلاش
به انجام کسب و کار با بانک خود آنلاین در همان مقدار
از زمان تنها یکی از آنها را می توانید در یک زمان.
که احمقانه است، به خصوص بر روی سرور در حال حاضر
که هشت دوره، 16 البته، باید مقدار زیادی
حافظه، وجود دارد هیچ دلیلی برای سریال همه
معاملات خود را اگر آن مشتریان تنها رفتن
به تعامل با ردیف خود را دارند.
بنابراین NoDB اجازه می دهد تا شما را به انجام همه چیز آگاهی بیشتر
و این به طور کلی خواهد بود رویکرد شما در کد را،
به شما استفاده از چیزی به نام معامله.
و شما این کار را به طور کلی در کد PHP،
کد روبی، پایتون، هر آنچه.
اما کد SQL که در نهایت استفاده از این است،
به طور معمول.
شروع معامله پس از آن شما مشخص دو یا بیشتر نمایش داده شد
که شما می خواهید اجرا در دسترس نباشد
بدون وقفه یا نه در همه.
وجود دارد حتی می توانید برخی بیانیه را انتخاب کنید در
و یا برخی حذف و یا به روز رسانی.
اما چیزی که خوب است که پایگاه داده به اندازه کافی هوشمند خواهد بود
مطمئن شوید که فقط آن را قفل کردن ردیف در واقع آنها هستید
که در این به روز رسانی یا انتخاب یا حذف می کند.
بنابراین اگر شما هزاران نفر از ردیف کردم و شما فقط دست زدن به سه
از آنها، تنها که زیر مجموعه از جدول قفل شده است
که به معنی کسانی که دیگر 99 مشتریان می توانند ردیف خود لمس
بدون اینکه سریال و از طرف شما کاهش یافته است.
در همین حال، این بهترین است جنبه به معاملات.
آنها معاملات در است احساس مانند 161 در یک فایل سیستم،
آنها معاملاتی هستید
که بدان معنی است که شما می توانید رول آنها را به عقب، شما می توانید آنها را برگرداند.
این مثل این است که از دستور و یا کنترل F از پایگاه داده ها.
اگر شما بخشی کشف راه را از طریق تمام
از عملیات های مختلف اطلاعات خود را، ساقه، چیزی است که اشتباه است.
شما به معنای واقعی کلمه اجرا مختلف رول پرس و جو SQL برگشت
و همه از این روند - همه از اظهارات شما اجرا
پس از گفتن این شروع معامله ناپدید می شوند
به عنوان اینکه آنها هرگز اتفاق افتاده است،
است که شگفت آور چیزی که قدرتمند است.
و این انواع می باشد چیزهایی که قطعا در 50 ما مرتب سازی بر
از زیر فرش جارو و شما فقط نوع از فرض
که همه به خوبی خواهد بود.
اما هنگامی که شما شروع به فکر کردن در مورد پروژه های واقعی
و کاربران واقعی و یکپارچگی پایگاه داده خود را،
این نوع هستند از تصمیم گیری های طراحی
که می رویم به مهم باشد.