Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
وقتی یه کد رو از Stack Overflow یا GPT کپی میکنی بدون اینکه بفهمی چیه، مثل این میمونه که داری ساختمون رو روی شن میسازی!
به جاش --> دیباگ کن، لاگ بگیر، خطبهخط بفهم چی داره میگذره.
یه روز که پروژهت نابود شد، تازه میفهمی Git مثل ماشین زمانه.⌛️
به جاش --> در حداقلی ترین حالت ممکن git init، commit و checkout رو یاد بگیر.
کل پروژه تو main.js؟ خب معلومه وقتی باگ میخوره، یا میخوای یه فیچر توسعه بدی کابوس میشه!
به جاش --> کدت رو ماژولار کن و تفکیک وظایف داشته باش.
دیدن ویدیو مساوی یاد گرفتن نیست. باید بنویسی، بسازی، خراب کنی، درست کنی تا واقعا یاد بگیری.
به جاش --> بعد هر آموزش یه تمرین واقعی برای خودت در نظر بگیر و دست به کد شو.
"نکنه سوالم مسخره باشه؟"، نه عزیزم، مسخره اونیه که اشتباه میکنه و نمیپرسه!
به جاش --> از انجمنها، گیتهاب، چتجیپیتی و دوستات، بپرس و سریع جوابتو بگیر و وقت طلف نکن.
#️⃣ #programming #tips
🧑💻 @CoolyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
این پروژه مادر تمام Demo هایی که تا الان دیدید اومدن یه وب اپلیکیشن شبکه اجتماعی شبیه Medium رو به 100 تا زبان و فریم ورک جدا جدا نوشتن
codebase.show/projects/realworld
@Linuxor
codebase.show/projects/realworld
@Linuxor
Forwarded from Gopher Academy
🔵 عنوان مقاله
UPX 5.0: The 'Ultimate Packer' for EXecutables
🟢 خلاصه مقاله:
UPX یک ابزار برای کاهش حجم فایلهای اجرایی از طریق فشردهسازی و بازیابی دادهها در زمان اجرا است. این ابزار که در سال ۲۰۱۹ توسط بن بویتر بر روی فایلهای اجرایی نوشته شده با زبان برنامهنویسی Go مورد استفاده قرار گرفت، منحصر به فرد نبوده و برای زبانهای مختلف مناسب است. استفاده از UPX منجر به کاهش قابل توجه در حجم فایلهای اجرایی میشود، که به نوبه خود منجر به صرفهجویی در پهنای باند و فضای ذخیرهسازی میگردد.
🟣لینک مقاله:
https://golangweekly.com/link/169231/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
UPX 5.0: The 'Ultimate Packer' for EXecutables
🟢 خلاصه مقاله:
UPX یک ابزار برای کاهش حجم فایلهای اجرایی از طریق فشردهسازی و بازیابی دادهها در زمان اجرا است. این ابزار که در سال ۲۰۱۹ توسط بن بویتر بر روی فایلهای اجرایی نوشته شده با زبان برنامهنویسی Go مورد استفاده قرار گرفت، منحصر به فرد نبوده و برای زبانهای مختلف مناسب است. استفاده از UPX منجر به کاهش قابل توجه در حجم فایلهای اجرایی میشود، که به نوبه خود منجر به صرفهجویی در پهنای باند و فضای ذخیرهسازی میگردد.
🟣لینک مقاله:
https://golangweekly.com/link/169231/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
upx.github.io
UPX: the Ultimate Packer for eXecutables - Homepage
UPX homepage: the Ultimate Packer for eXecutables
Forwarded from DevTwitter | توییت برنامه نویسی
یکی از استارتاپای حوزه آموزش که خیلی با مدلش حال میکنم، roadmapSh عه:
به هر کس مطابق به علاقه و چیزی که میخواد یاد بگیره، یک نقشه راه مرحله به مرحله میده، و هر مرحله از بهترین آموزشهای آنلاین و ابزارهای آموزشی پروژه محوره.
جدیدا با هوش مصنوعی، بهش AI Tutor اضافه کرده که این AI Tutor میتونه دورههای شخصی سازی شده برای هر شخص تولید کنه.
این دورهها با استفاده از آموزشهای آنلاینی که Curate شده و با توجه به پروفایل هر شخص و دورههای مشابه موجود، برای هر شخص متفاوت خواهد بود.
(البته نسخه اولیهش فعلا بیرون اومده و خیییلی جای کار داره)
مهمترین نکته این سرویس اینه که فرآیند Curation و ساخت دورهها، تماما جمع سپاری شده است و توسط یک گروه انجام نشده، که همین باعث شده بتونه واقعا راهنماها و محتوای آموزشیی منتشر کنه که به برنامهنویسها کمک کنه مسیر یادگیریشون رو پیدا کنن و راحتتر جلو برن:
roadmap.sh
@DevTwitter | <Farokh/>
به هر کس مطابق به علاقه و چیزی که میخواد یاد بگیره، یک نقشه راه مرحله به مرحله میده، و هر مرحله از بهترین آموزشهای آنلاین و ابزارهای آموزشی پروژه محوره.
جدیدا با هوش مصنوعی، بهش AI Tutor اضافه کرده که این AI Tutor میتونه دورههای شخصی سازی شده برای هر شخص تولید کنه.
این دورهها با استفاده از آموزشهای آنلاینی که Curate شده و با توجه به پروفایل هر شخص و دورههای مشابه موجود، برای هر شخص متفاوت خواهد بود.
(البته نسخه اولیهش فعلا بیرون اومده و خیییلی جای کار داره)
مهمترین نکته این سرویس اینه که فرآیند Curation و ساخت دورهها، تماما جمع سپاری شده است و توسط یک گروه انجام نشده، که همین باعث شده بتونه واقعا راهنماها و محتوای آموزشیی منتشر کنه که به برنامهنویسها کمک کنه مسیر یادگیریشون رو پیدا کنن و راحتتر جلو برن:
roadmap.sh
@DevTwitter | <Farokh/>
Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
🔸customize subtitle
با اومدن ai کیفیت زیرنویسها بیشتر شده ولی خب باید ویدیو رو دانلود کنی و با زیرنویس خودت ببینی
با این افزونه نیازی به دانلود نیست میتونید زیرنویس رو از سیستم خودتون اپلود کنید و کاستومایز کنید علاوه بر یوتیوب طبق ادعاش میگه هر سایتی که پخش ویدیو داشته باشه ساپورت میکنه و این عالیه:
Be it on Netflix, HBOMax, Disney+, Amazon Prime, Vimeo, Youtube or any other online streaming website
لینک افزونه کروم (برای فایرفاکس هم هستش سرچ کنید):
https://chromewebstore.google.com/detail/substital-add-subtitles-t/kkkbiiikppgjdiebcabomlbidfodipjg
دنبال گیتهابش بودم ولی مثل اینکه دیگه ورژن 2.8.1 اوپن سورس نیست ولی یه یوزری یه کپی از سورسش داره که برای ورژن 2.8.0 هستش:
https://github.com/nmhung520/Substital
@TheRaymondDev
با اومدن ai کیفیت زیرنویسها بیشتر شده ولی خب باید ویدیو رو دانلود کنی و با زیرنویس خودت ببینی
با این افزونه نیازی به دانلود نیست میتونید زیرنویس رو از سیستم خودتون اپلود کنید و کاستومایز کنید علاوه بر یوتیوب طبق ادعاش میگه هر سایتی که پخش ویدیو داشته باشه ساپورت میکنه و این عالیه:
Be it on Netflix, HBOMax, Disney+, Amazon Prime, Vimeo, Youtube or any other online streaming website
لینک افزونه کروم (برای فایرفاکس هم هستش سرچ کنید):
https://chromewebstore.google.com/detail/substital-add-subtitles-t/kkkbiiikppgjdiebcabomlbidfodipjg
دنبال گیتهابش بودم ولی مثل اینکه دیگه ورژن 2.8.1 اوپن سورس نیست ولی یه یوزری یه کپی از سورسش داره که برای ورژن 2.8.0 هستش:
https://github.com/nmhung520/Substital
@TheRaymondDev
Forwarded from Code Module | کد ماژول (𔓙)
Forwarded from Linuxor ?
اگه برنامه نویسی میکنین و نمیدونین چه چیز جدیدی یاد بگیرین این ریپو رو ببینید کلی کتاب و سرنخ بهتون میده
github.com/mtdvio/every-programmer-should-know
@Linuxor
github.com/mtdvio/every-programmer-should-know
@Linuxor
Forwarded from IRCF | اینترنت آزاد برای همه
فقط این پیشنهادهای فانتزی!
اینترنت را مختل کردهاند؛ تقریبا همه پلتفرمهای خارجی مسدود است؛ هر بنگاه بزرگ و سودآوری را به انحصار نهاد و بنیاد فلان درآوردهاند، پلتفرمها را برای افشای اطلاعات خصوصی کاربران زیر فشار میگذارند، ۲۴ ساعته بانک اطلاعات مردم در مجازی پخش است ...
© shokrani_maryam
🔍 ircf.space
@ircfspace
اینترنت را مختل کردهاند؛ تقریبا همه پلتفرمهای خارجی مسدود است؛ هر بنگاه بزرگ و سودآوری را به انحصار نهاد و بنیاد فلان درآوردهاند، پلتفرمها را برای افشای اطلاعات خصوصی کاربران زیر فشار میگذارند، ۲۴ ساعته بانک اطلاعات مردم در مجازی پخش است ...
© shokrani_maryam
🔍 ircf.space
@ircfspace
Forwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
ویندوز آرم هم اکنون بواسطه Qemu/KVM بر روی پارچ آرم اجرا میشود.
ما در تلاشیم تا این فرآیند را برای کاربر نهایی سادهتر کنیم.
رلیز تابستانه پارچ نزدیک است، با پر کردن این فرم میتوانید به ما در بهبود پارچ کمک شایانی بکنید.
@ParchLinux
ما در تلاشیم تا این فرآیند را برای کاربر نهایی سادهتر کنیم.
رلیز تابستانه پارچ نزدیک است، با پر کردن این فرم میتوانید به ما در بهبود پارچ کمک شایانی بکنید.
@ParchLinux
Forwarded from ASafaeirad
A well-organized collection of frontend interview questions
https://arminshaikhy.github.io/frontend-interview-questions/
#interview #frontend
https://arminshaikhy.github.io/frontend-interview-questions/
#interview #frontend
frontend-interview-questions
Frontend Interview Questions
A well-organized collection of frontend interview questions, categorized by topic, designed to help you prepare for technical interviews, deepen your knowledge, and serve as a practical reference for ongoing learning.
Forwarded from DevTwitter | توییت برنامه نویسی
معرفی AxonJs: فریمورک مدرن Node.js برای API RESTful ها
امروز خوشحالم که اولین مقالهٔ جامع خودم رو دربارهی AxonJs روی Medium.com و Dev.to منتشر کردم!
فریمورک AxonJs (که البته هنوز درحال توسعه است) با معماری ماژولار، پشتیبانی از TypeScript و CLI اختصاصی، توسعهی RESTful API رو سریعتر و لذتبخشتر میکنه. طبق بنچمارکها، سرعتش تا دو برابر Express.js بالاتره و با سیستم پلاگین و اعتبارسنجی سریع، نیاز به کتابخانههای اضافی رو حذف میکنه.
اگر دنبال فریمورکی هستید که هم ساده باشه و هم قدرت بالا، حتماً نگاهی به AxonJs بندازید. نظرات و مشارکت شما برای توسعهی این پروژهٔ متنباز ارزشمنده!
خواندن مقاله در Medium.com:
https://mr-mkz.medium.com/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-b99a4aac7f83
خواندن مقاله در Dev.to:
https://dev.to/mrmkz/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-3a03
GitHub:
https://github.com/AxonJsLabs/AxonJs
@DevTwitter | <Erfan Karimi/>
امروز خوشحالم که اولین مقالهٔ جامع خودم رو دربارهی AxonJs روی Medium.com و Dev.to منتشر کردم!
فریمورک AxonJs (که البته هنوز درحال توسعه است) با معماری ماژولار، پشتیبانی از TypeScript و CLI اختصاصی، توسعهی RESTful API رو سریعتر و لذتبخشتر میکنه. طبق بنچمارکها، سرعتش تا دو برابر Express.js بالاتره و با سیستم پلاگین و اعتبارسنجی سریع، نیاز به کتابخانههای اضافی رو حذف میکنه.
اگر دنبال فریمورکی هستید که هم ساده باشه و هم قدرت بالا، حتماً نگاهی به AxonJs بندازید. نظرات و مشارکت شما برای توسعهی این پروژهٔ متنباز ارزشمنده!
خواندن مقاله در Medium.com:
https://mr-mkz.medium.com/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-b99a4aac7f83
خواندن مقاله در Dev.to:
https://dev.to/mrmkz/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-3a03
GitHub:
https://github.com/AxonJsLabs/AxonJs
@DevTwitter | <Erfan Karimi/>
Forwarded from IRCF | اینترنت آزاد برای همه
اینکه با حضور در یک برنامه طنز و فان، دم از «فناوریهای نوین» و «صداقت با مردم» میزنید؛ حتما انتخاب درستی هست.
صداقت در رفتار است. نه گفتار!
© yasharsoltani
🔍 ircf.space
@ircfspace
صداقت در رفتار است. نه گفتار!
© yasharsoltani
🔍 ircf.space
@ircfspace
Forwarded from Linuxor ?
به Svelte خیلی کم لطفی شده، Svelte یه فریمورک مدرن برای توسعه رابط کاربری (UI) هستش که برخلاف فریمورکهایی مثل React یا Vue، به جای اجرای عملیات توی runtime، توی زمان ساخت (build time) کدهاتون رو به جاوااسکریپت بهینه تبدیل میکنه. این باعث میشه برنامهها سریعتر بارگذاری بشن و حجم فایلهای نهایی کاهش پیدا کنه :
svelte.dev/docs/svelte/overview
@Linuxor
svelte.dev/docs/svelte/overview
@Linuxor
Forwarded from IRCF | اینترنت آزاد برای همه
وزیر قطعارتباطات گفته استفاده از باتریهای پشتیبان مشکل کندی و اختلال اینترنت رو حل نمیکنن، چون بر اساس استانداردهای جهانی تنها ۲۰ دقیقه و در حالت نو حداکثر یک ساعت میتونن سایت رو فعال نگه دارن، که واسه ناترازیهای گسترده کارآمد نیستن.
ایشون البته بعد از تشریح مشکل و مرثیه سرایی، اشارهای به راهحل و زمان رفع مشکل نکرده!
🔍 ircf.space
@ircfspace
ایشون البته بعد از تشریح مشکل و مرثیه سرایی، اشارهای به راهحل و زمان رفع مشکل نکرده!
🔍 ircf.space
@ircfspace
Forwarded from Mr Python | مستر پایتون (حسین)
🟣 آموزش کتابخانه Libnet - قسمت ۱ : نصب و مفاهیم اولیه
به اولین قسمت از آموزش کتابخانه Libnet در زبان C خوش آمدید . این کتابخانه به ما اجازه میده تا بسته های دلخواه در شبکه تزریق کنیم . به عبارتی بسته هایی با header های مختلف و مقادیر دلخواه بسازیم و اونا رو در شبکه ارسال کنیم . این باعث میشه بتونیم طیف وسیعی از حملات و ابزار های تحت شبکه رو بنویسیم .
Aparat : https://www.aparat.com/v/vluz625
Youtube : https://youtu.be/5izrtZqUBNE
#Network #Libnet
🆔 : @MrPythonBlog | BOOST
به اولین قسمت از آموزش کتابخانه Libnet در زبان C خوش آمدید . این کتابخانه به ما اجازه میده تا بسته های دلخواه در شبکه تزریق کنیم . به عبارتی بسته هایی با header های مختلف و مقادیر دلخواه بسازیم و اونا رو در شبکه ارسال کنیم . این باعث میشه بتونیم طیف وسیعی از حملات و ابزار های تحت شبکه رو بنویسیم .
Aparat : https://www.aparat.com/v/vluz625
Youtube : https://youtu.be/5izrtZqUBNE
#Network #Libnet
🆔 : @MrPythonBlog | BOOST
Forwarded from Ninja Learn | نینجا لرن (Denver)
خب خب خب، انواع کلید توی دیتابیس های رابطه ای🔑
کلید ها توی دیتابیس ها نقش حیاتی ای توی تضمین یکپارچگی و سازماندهی داده ها دارن. شاید تا الان موقع طراحی دیتابیس به این فکر کرده باشین که مثلا Primary Key چیه؟ چطوری تعیین میشه؟ یا اینکه اصلا Foreign Key چیه؟ توی این پست مهم ترین کلیدهای دیتابیس رو باهم مرور میکنیم.
1. کلید اولیه یا اصلی (Primary Key):
هر جدول یک کلید اولیه داره که رکوردها رو بهصورت یکتا شناسایی میکنه. مقادیر این کلید باید منحصربهفرد و غیر NULL باشن.
مثال: توی جدول کاربران، user_id به عنوان کلید اولیه عمل میکنه. نمیتونه NULL باشه و حتما باید منحصر به فرد باشه.
2. کلید خارجی (Foreign Key):
کلید خارجی ارتباط بین دو جدول را فراهم میکنه و به کلید اولیه یک جدول دیگر اشاره داره. این کلید برای حفظ یکپارچگی مرجع استفاده میشه. درواقع ستونی که به کلید اصلی یه جدول دیگه اشاره کنه رو کلید خارجی میگن.
مثال: توی جدول سفارشات، user_id به کلید اولیه جدول کاربران اشاره میکنه. کلید اصلی از جدول کاربران توی جدول سفارشات استفاده شده و توی جدول سفارشات بهش میگیم کلید خارجی.
3. کلید ترکیبی (Composite Key):
کلیدی که از ترکیب چند ستون ساخته میشه و برای شناسایی یکتا به کار میره. معمولاً زمانی که یک ستون به تنهایی کافی نیست از کلید ترکیبی استفاده میشه.
مثال: در جدول ثبتنامها، ترکیب student_id و course_id یک کلید ترکیبی ایجاد میکنه.
4. کلید کاندید (Candidate Key):
هر ستون یا ترکیبی از ستونها که بتونه به عنوان کلید اصلی استفاده بشه، کلید کاندید نامیده میشه. هر جدول میتواند چندین کلید کاندید داشته باشه، اما فقط یکی از اونها به عنوان کلید اصلی انتخاب میشن. خیلی ساده تر بخوام بگم ستون یا ستون هایی که میتونستند به عنوان کلید اصلی انتخاب بشن.
مثال: توی جدول محصولات، ستونهای product_code و product_name میتونن به عنوان کلید کاندید عمل کنن.
5. سوپر کلید (Super Key):
سوپر کلید، هر مجموعهای از ستونهاست که میتونه هر رکورد توی جدول رو بهطور یکتا شناسایی کنه. همه کلیدهای کاندید و کلید اصلی، سوپر کلید هستند، ولی هر سوپر کلیدی کاندید نیست.
مثال: ستون user_id یا ترکیب user_id و email در جدول کاربران میتواند سوپر کلید باشد.
7. کلید جایگزین (Alternate Key):
زمانی که یک کلید کاندید به عنوان کلید اولیه انتخاب نمیشه، بهش کلید جایگزین میگن. این کلید هنوز قابلیت شناسایی یکتا را داره،ولی به عنوان کلید اصلی انتخاب نشده.
مثال: اگر توی جدول کاربران هم user_id و هم email کلید کاندید باشن و user_id به عنوان کلید اصلی انتخاب بشه، email کلید جایگزین خواهد بود.
8. کلید منحصر به فرد (Unique Key):
مثل کلید کاندیده با این تفاوت که کلید منحصر به فرد میتونه مقدار NULL داشته باشه (در بیشتر پایگاهدادهها حتی چند مقدار NULL مجازه)، ولی مقادیر غیر NULL نباید تکراری باشن. کلید منحصر به فرد در تضمین یکتایی دادهها موثر هست.
مثال: توی جدول کاربران، email میتونه یک کلید منحصر به فرد باشه، به این صورت که مقادیر ایمیل نباید تکراری باشن، اما میتونن NULL باشند.
جمع بندی✍️
این کلیدها به شما کمک میکنن تا وابستگیهای تابعی رو بهتر بشناسید و ساختار دیتابیستون رو اصولی و منظم طراحی کنید. همچنین باعث میشن دیتابیستون هم مقیاسپذیرتر باشه و هم برای تغییرات آینده آمادهتر.
➖➖➖➖➖➖➖➖➖➖
کلید ها توی دیتابیس ها نقش حیاتی ای توی تضمین یکپارچگی و سازماندهی داده ها دارن. شاید تا الان موقع طراحی دیتابیس به این فکر کرده باشین که مثلا Primary Key چیه؟ چطوری تعیین میشه؟ یا اینکه اصلا Foreign Key چیه؟ توی این پست مهم ترین کلیدهای دیتابیس رو باهم مرور میکنیم.
1. کلید اولیه یا اصلی (Primary Key):
هر جدول یک کلید اولیه داره که رکوردها رو بهصورت یکتا شناسایی میکنه. مقادیر این کلید باید منحصربهفرد و غیر NULL باشن.
مثال: توی جدول کاربران، user_id به عنوان کلید اولیه عمل میکنه. نمیتونه NULL باشه و حتما باید منحصر به فرد باشه.
2. کلید خارجی (Foreign Key):
کلید خارجی ارتباط بین دو جدول را فراهم میکنه و به کلید اولیه یک جدول دیگر اشاره داره. این کلید برای حفظ یکپارچگی مرجع استفاده میشه. درواقع ستونی که به کلید اصلی یه جدول دیگه اشاره کنه رو کلید خارجی میگن.
مثال: توی جدول سفارشات، user_id به کلید اولیه جدول کاربران اشاره میکنه. کلید اصلی از جدول کاربران توی جدول سفارشات استفاده شده و توی جدول سفارشات بهش میگیم کلید خارجی.
3. کلید ترکیبی (Composite Key):
کلیدی که از ترکیب چند ستون ساخته میشه و برای شناسایی یکتا به کار میره. معمولاً زمانی که یک ستون به تنهایی کافی نیست از کلید ترکیبی استفاده میشه.
مثال: در جدول ثبتنامها، ترکیب student_id و course_id یک کلید ترکیبی ایجاد میکنه.
4. کلید کاندید (Candidate Key):
هر ستون یا ترکیبی از ستونها که بتونه به عنوان کلید اصلی استفاده بشه، کلید کاندید نامیده میشه. هر جدول میتواند چندین کلید کاندید داشته باشه، اما فقط یکی از اونها به عنوان کلید اصلی انتخاب میشن. خیلی ساده تر بخوام بگم ستون یا ستون هایی که میتونستند به عنوان کلید اصلی انتخاب بشن.
مثال: توی جدول محصولات، ستونهای product_code و product_name میتونن به عنوان کلید کاندید عمل کنن.
5. سوپر کلید (Super Key):
سوپر کلید، هر مجموعهای از ستونهاست که میتونه هر رکورد توی جدول رو بهطور یکتا شناسایی کنه. همه کلیدهای کاندید و کلید اصلی، سوپر کلید هستند، ولی هر سوپر کلیدی کاندید نیست.
مثال: ستون user_id یا ترکیب user_id و email در جدول کاربران میتواند سوپر کلید باشد.
برای این میگیم هر سوپر کلیدی، کلید کاندید نیست که یه سوپر کلید ممکنه از ترکیب یه کلید اصلی و یه کلید کاندید ایجاد شده باشه(مثلا user_id+user_email) ولی چون فقط با یکی از اینها(user_id) میتونیم یه رکورد رو به صورت یکتا شناسایی کنیم و کلید دومی(user_email) یه جورایی اضافه هست، دیگه این ترکیب کاندید نیست بلکه این فیلد ها هرکدوم یه کلید کاندید به حساب میان.
7. کلید جایگزین (Alternate Key):
زمانی که یک کلید کاندید به عنوان کلید اولیه انتخاب نمیشه، بهش کلید جایگزین میگن. این کلید هنوز قابلیت شناسایی یکتا را داره،ولی به عنوان کلید اصلی انتخاب نشده.
مثال: اگر توی جدول کاربران هم user_id و هم email کلید کاندید باشن و user_id به عنوان کلید اصلی انتخاب بشه، email کلید جایگزین خواهد بود.
8. کلید منحصر به فرد (Unique Key):
مثل کلید کاندیده با این تفاوت که کلید منحصر به فرد میتونه مقدار NULL داشته باشه (در بیشتر پایگاهدادهها حتی چند مقدار NULL مجازه)، ولی مقادیر غیر NULL نباید تکراری باشن. کلید منحصر به فرد در تضمین یکتایی دادهها موثر هست.
مثال: توی جدول کاربران، email میتونه یک کلید منحصر به فرد باشه، به این صورت که مقادیر ایمیل نباید تکراری باشن، اما میتونن NULL باشند.
جمع بندی✍️
این کلیدها به شما کمک میکنن تا وابستگیهای تابعی رو بهتر بشناسید و ساختار دیتابیستون رو اصولی و منظم طراحی کنید. همچنین باعث میشن دیتابیستون هم مقیاسپذیرتر باشه و هم برای تغییرات آینده آمادهتر.
#️⃣ #programming #db
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP