الأدلّة/قواعد البيانات والأمان

أساسيات قاعدة البيانات في Lovable Cloud

كيف تصمّم مخطّطًا سليمًا من البداية بدل إعادة كتابته بعد شهر.

10 د قراءة·تحديث ٢٠٢٦/٠٧·بقلم فريق تحرير Lovable بالعربي
شارك الصفحة:

فكّر بالكيانات، لا بالشاشات

قبل كتابة أيّ CREATE TABLE، اكتب على ورقة: ما الكيانات الحقيقية في المنتج؟ (مستخدم، مشروع، طلب…) وما العلاقات؟ الجدول ليس مرآة للشاشة — قد تحتاج شاشة واحدة بيانات من أربع جداول.

المفاتيح والعلاقات

استخدم uuid كمفتاح أساسيّ افتراضًا (gen_random_uuid()). للعلاقات، استخدم foreign keys مع ON DELETE CASCADE للعلاقات المملوكة، وON DELETE SET NULL للاختيارية. لا تنسَ إنشاء INDEX على أعمدة foreign key.

RLS + GRANTs معًا، دائمًا

كل جدول في schema.public يحتاج ثلاث خطوات في نفس الترحيل: (١) CREATE TABLE، (٢) GRANT للأدوار المسموح لها، (٣) ENABLE RLS + CREATE POLICY. حذف أيّ خطوة يعني خطأ صلاحيات في وقت التشغيل.

الأدوار بجدول منفصل

لا تخزّن أبدًا حقل is_admin أو role في جدول profiles — هذه ثغرة تصعيد صلاحيات كلاسيكية. أنشئ جدول user_roles منفصلًا، ودالّة has_role() بصيغة SECURITY DEFINER، واستخدمها داخل RLS.

الترحيلات كتاريخ لا يُحذف

كل تعديل على المخطّط = ملفّ migration جديد. لا تعدّل ملفّ ترحيل قديم مطلقًا. عند إضافة عمود NOT NULL على جدول حيّ: أضفه nullable، عبّئ القيم، ثم أضف NOT NULL في ترحيل ثانٍ.

برومبتات ذات صلة
  • مخطّط قاعدة بيانات لمدوّنة
    posts + categories + authors مع RLS جاهزة.
  • أدوار وصلاحيات بجدول منفصل
    admin/moderator/user بأمان تام بلا privilege escalation.
  • إصلاح RLS تسرّب صلاحيات
    تدقيق سياسات RLS ومنع الوصول غير المصرّح به.
  • ترحيل آمن لعمود جديد
    إضافة عمود بدون كسر قاعدة البيانات الحيّة.
استعرض كل البرومبتات ←
مصطلحات ذات صلة

هل كان هذا المحتوى مفيداً؟

النشرة الأسبوعية

استلم أحدث الأدلّة والبرومبتات كل أسبوع

خلاصة عربية أسبوعية عن Lovable وVibe Coding — بلا سبام، إلغاء متى شئت.

انضم لمجتمع واتساب