15.6. الدرس: القواعد (Rules)

تتيح القواعد إعادة كتابة "شجرة الاستعلام" لاستعلام وارد. ومن استخداماتها الشائعة تنفيذ طرق العرض، بما فيها طرق العرض القابلة للتحديث. - Wikipedia

هدف هذا الدرس: تعلّم كيفية إنشاء قواعد جديدة لقاعدة البيانات.

15.6.1. إنشاء قاعدة تسجيل

لنفترض أنك تريد تسجيل كل تغيير في phone_no في الجدول people ضمن جدول people_log. لذا تُنشئ جدولًا جديدًا:

create table people_log (name text, time timestamp default NOW());

في الخطوة التالية، أنشئ قاعدة تسجّل كل تغيير في phone_no في الجدول people ضمن الجدول people_log:

create rule people_log as on update to people
  where NEW.phone_no <> OLD.phone_no
  do insert into people_log values (OLD.name);

لاختبار عمل القاعدة، لنعدّل رقم هاتف:

update people set phone_no = '082 555 1234' where id = 2;

تحقق من أن الجدول people حُدِّث بشكل صحيح:

select * from people where id=2;

 id |    name    | house_no | street_id |   phone_no
----+------------+----------+-----------+--------------
  2 | Joe Bloggs |        3 |         2 | 082 555 1234
(1 row)

الآن، وبفضل القاعدة التي أنشأناها، سيبدو الجدول people_log هكذا:

select * from people_log;

    name    |            time
------------+----------------------------
 Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)

ملاحظة

ستعتمد قيمة الحقل time على التاريخ والوقت الحاليين.

15.6.2. الخلاصة

تتيح لك القواعد إضافة البيانات أو تغييرها تلقائيًا في قاعدة بياناتك لتعكس التغييرات في أجزاء أخرى من قاعدة البيانات.

15.6.3. ما التالي؟

ستعرّفك الوحدة التالية بقواعد البيانات المكانية باستخدام PostgreSQL مع امتداد PostGIS، الذي يأخذ مفاهيم قواعد البيانات هذه ويطبقها على بيانات GIS.