کلیلە سەرەکی (Primary Key) چییە؟

کلیلە سەرەکی بریتییە لە کۆڵەکەی سەرەکی هەر خشتەیەک لە MySQL. ئەرکی سەرەکی ئەم کلیلە ئەوەیە کە هەر ڕیزێک (Row) بە شێوەیەکی ناوازە و بێ دووبارەبوونەوە بناسێنێتەوە. بەبێ کلیلە سەرەکی، زەحمەت دەبێت داتایەک بە دیاریکراوی دەستنیشان بکەین.

تێبینی: هەر خشتەیەک دەبێت تەنها یەک کلیلە سەرەکی هەبێت، و ئەو کلیلە ناتوانێت بەتاڵ (NULL) بێت.

دروستکردنی خشتە بە کلیلە سەرەکی

کاتێک خشتەیەک دروست دەکەین، بەکارهێنانی فەرمانی 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. ئەمە دڵنیامان دەکاتەوە کە فەرمانێک بۆ بەکارهێنەرێک تۆمار ناکرێت کە بوونی نییە.

گرنگی پاراستنی پەیوەندییەکان

ئاگاداری: ئەگەر هەوڵ بدەیت داتایەک بسڕیتەوە کە لە خشتەیەکی تردا وەک کلیلە لاوەکی بەکارهاتووە، MySQL ڕێگەت لێ دەگرێت بۆ ئەوەی داتاکانت تێک نەچێت. ئەمە پێی دەوترێت Referential Integrity.

هەڵە باوەکان

یەکێک لە هەڵە باوەکان ئەوەیە کە جۆری داتای (Data Type) کلیلە لاوەکییەکە لەگەڵ کلیلە سەرەکییەکە یەک ناگرێتەوە. بۆ نموونە ئەگەر کلیلە سەرەکی INT بێت، نابێت کلیلە لاوەکییەکە VARCHAR بێت.

ڕاهێنان

  • خشتەیەکی نوێ بە ناوی products دروست بکە کە خاوەنی product_id بێت وەک کلیلە سەرەکی.
  • خشتەیەکی تر بە ناوی sales دروست بکە و product_id تێیدا بەکاربهێنە وەک کلیلە لاوەکی بۆ خشتەی products.

ئەمانە ئەم فێرکارییەیان تەواوکردووە

1 فێرخواز تەواویان کردووە