کلیلە سەرەکی (Primary Key) چییە؟
کلیلە سەرەکی بریتییە لە کۆڵەکەی سەرەکی هەر خشتەیەک لە MySQL. ئەرکی سەرەکی ئەم کلیلە ئەوەیە کە هەر ڕیزێک (Row) بە شێوەیەکی ناوازە و بێ دووبارەبوونەوە بناسێنێتەوە. بەبێ کلیلە سەرەکی، زەحمەت دەبێت داتایەک بە دیاریکراوی دەستنیشان بکەین.
دروستکردنی خشتە بە کلیلە سەرەکی
کاتێک خشتەیەک دروست دەکەین، بەکارهێنانی فەرمانی PRIMARY KEY زۆر گرنگە. با نموونەی خشتەی بەکارهێنەران ببینین:
CREATE TABLE users ( id INT NOT NULL, username VARCHAR(50), PRIMARY KEY (id));لە نموونەکەدا، ستوونی id وەک کلیلە سەرەکی دیاریکراوە. ئەگەر هەوڵ بدەیت دوو بەکارهێنەر بە هەمان id تۆمار بکەیت، MySQL ڕێگەت لێ دەگرێت.
کلیلە لاوەکی (Foreign Key) چییە؟
کلیلە لاوەکی ئامرازێکە بۆ بەستنەوەی دوو خشتە بەیەکەوە. کلیلە لاوەکی لە خشتەیەکدا ئاماژە بە کلیلە سەرەکی خشتەیەکی تر دەکات. ئەمە بنەمای پەیوەندییەکانی داتابەیسە (Relational Database).
بەستنەوەی خشتەکان بە کلیلە لاوەکی
بۆ نموونە، ئەگەر خشتەیەکمان هەبێت بۆ فەرمانەکان (Orders)، دەمانەوێت بزانین هەر فەرمانێک هی کام بەکارهێنەرە. بۆ ئەمە user_id لە خشتەی فەرمانەکان دەکەین بە کلیلە لاوەکی:
CREATE TABLE orders ( order_id INT PRIMARY KEY, order_date DATE, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id));لێرەدا user_id لە خشتەی orders بەستراوەتەوە بە id لە خشتەی users. ئەمە دڵنیامان دەکاتەوە کە فەرمانێک بۆ بەکارهێنەرێک تۆمار ناکرێت کە بوونی نییە.
گرنگی پاراستنی پەیوەندییەکان
هەڵە باوەکان
یەکێک لە هەڵە باوەکان ئەوەیە کە جۆری داتای (Data Type) کلیلە لاوەکییەکە لەگەڵ کلیلە سەرەکییەکە یەک ناگرێتەوە. بۆ نموونە ئەگەر کلیلە سەرەکی INT بێت، نابێت کلیلە لاوەکییەکە VARCHAR بێت.
ڕاهێنان
- خشتەیەکی نوێ بە ناوی
productsدروست بکە کە خاوەنیproduct_idبێت وەک کلیلە سەرەکی. - خشتەیەکی تر بە ناوی
salesدروست بکە وproduct_idتێیدا بەکاربهێنە وەک کلیلە لاوەکی بۆ خشتەیproducts.
ئەمانە ئەم فێرکارییەیان تەواوکردووە
1 فێرخواز تەواویان کردووە