كيف تعمل العلاقات
تتطلّب كل علاقة حقلين يشيران إلى بعضهما البعض:- جانب MANY_TO_ONE — يوجد على الكائن الذي يحمل المفتاح الخارجي.
- جانب ONE_TO_MANY — يوجد على الكائن الذي يملك المجموعة.
FieldType.RELATION ويُحيل كلٌ منهما إلى الآخر عبر relationTargetFieldMetadataUniversalIdentifier.
مثال: البطاقة البريدية لديها العديد من المستلمين
يمكن إرسالPostCard إلى العديد من سجلات PostCardRecipient. ينتمي كل مستلم إلى بطاقة بريدية واحدة بالضبط.
الخطوة 1: عرّف جانب ONE_TO_MANY على PostCard (جانب “الواحد”):
src/fields/post-card-recipients-on-post-card.field.ts
src/fields/post-card-on-post-card-recipient.field.ts
الاستيرادات الدائرية: كلا حقلي العلاقة يُشير كلٌّ منهما إلى
universalIdentifier الخاص بالآخر. لتجنّب مشكلات الاستيراد الدائري، صدِّر معرّفات الحقول كثوابت مسمّاة من كل ملف، واستورِدها في الملف الآخر. يقوم نظام البناء بحلّها في وقت التجميع.الربط مع الكائنات القياسية
لإنشاء علاقة مع كائن Twenty مضمّن (Person, Company, etc.)، استخدمSTANDARD_OBJECT_UNIVERSAL_IDENTIFIERS:
src/fields/person-on-self-hosting-user.field.ts
خصائص حقل العلاقة
حقول العلاقات المضمَّنة
يمكنك أيضًا إعلان علاقة مباشرة داخلdefineObject. عند كونها مضمَّنة، احذِف objectUniversalIdentifier — إذ يُورَّث من الكائن الأب: