إعادة هيكلة نموذجك الرسومي وتطويره
تعلّم كيفية تطوير نموذج Neo4j الرسومي بأمان بمرور الوقت باستخدام أنماط إعادة الهيكلة وإعادة تشكيل الاستعلامات.
إعادة هيكلة نموذجك الرسومي وتطويره درس مجاني في Neo4j Graph Database Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Neo4j Graph Database Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Neo4j Graph Database Fundamentals 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Models Are Never Final
As applications grow, your graph model will change. New questions demand new structure. Refactoring lets you reshape the graph without losing data.
Property to Node
A common refactor: a property shared by many nodes (like a city name) becomes its own node so it can hold relationships.
MATCH (p:Person)
WHERE p.city IS NOT NULL
MERGE (c:City {name: p.city})
MERGE (p)-[:LIVES_IN]->(c)
REMOVE p.city;Node to Property
The reverse refactor: collapse a rarely-traversed node back into a property when its relationships add no value.
MATCH (p:Person)-[r:LIVES_IN]->(c:City)
SET p.city = c.name
DELETE r;Renaming Relationship Types
To rename a relationship type, create the new one and delete the old. Cypher cannot rename a type in place.
MATCH (a)-[old:KNOWS]->(b)
MERGE (a)-[:FRIEND]->(b)
DELETE old;Adding a New Label
You can introduce a new label to a subset of nodes to support new queries or constraints.
MATCH (p:Person)
WHERE p.age >= 18
SET p:Adult;Splitting a Node
When one node mixes two concerns (e.g. a user and their address), split it into linked nodes for clarity and reuse.
MATCH (u:User)
WHERE u.street IS NOT NULL
CREATE (a:Address {street: u.street, zip: u.zip})
MERGE (u)-[:HAS_ADDRESS]->(a)
REMOVE u.street, u.zip;Merging Duplicate Nodes
Data imports can create duplicates. Use APOC or careful Cypher to merge them, reattaching all relationships to a single surviving node.
MATCH (a:Person {email: 'x@y.com'}), (b:Person {email: 'x@y.com'})
WHERE id(a) < id(b)
WITH a, b
CALL apoc.refactor.mergeNodes([a, b]) YIELD node
RETURN node;Batching Large Refactors
Refactors over millions of nodes should run in batches to avoid huge transactions. APOC's periodic iterate helps.
CALL apoc.periodic.iterate(
'MATCH (p:Person) WHERE p.city IS NOT NULL RETURN p',
'MERGE (c:City {name: p.city}) MERGE (p)-[:LIVES_IN]->(c) REMOVE p.city',
{batchSize: 1000}
);Versioning Your Model
Keep refactor scripts in version control and apply them in order, like database migrations. This makes changes reproducible across environments.
Testing After Refactor
Always validate counts before and after. Compare relationship totals to ensure nothing was orphaned or lost.
MATCH ()-[r:LIVES_IN]->() RETURN count(r) AS livesInCount;Refactor with Confidence
Back up first, refactor in batches, verify counts, and keep scripts versioned. A graph model is a living thing you improve over time.
Quick Check
Test your refactoring knowledge.
Recap
You learned to evolve graph models safely:
- Convert properties to nodes and back
- Rename relationship types by recreating them
- Split nodes and merge duplicates
- Batch large refactors with APOC
- Version scripts and verify counts
تعلم Neo4j Graph Database Fundamentals مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «إعادة هيكلة نموذجك الرسومي وتطويره» مجاني؟
نعم — نص درس «إعادة هيكلة نموذجك الرسومي وتطويره» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Neo4j Graph Database Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Neo4j Graph Database Fundamentals 4 دروس في المجموع.
ماذا ستتعلم في «إعادة هيكلة نموذجك الرسومي وتطويره»؟
تعلّم كيفية تطوير نموذج Neo4j الرسومي بأمان بمرور الوقت باستخدام أنماط إعادة الهيكلة وإعادة تشكيل الاستعلامات. تتمرن على Neo4j Graph Database Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Neo4j Graph Database Fundamentals؟
لا تُشترط خبرة سابقة. Neo4j Graph Database Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إعادة هيكلة نموذجك الرسومي وتطويره»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Neo4j Graph Database Fundamentals هذا؟
نعم. كل درس في Neo4j Graph Database Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مبادئ نمذجة بيانات الرسوم البيانية
- تصميم نموذج الرسم البياني الأول
- قيود المخطط والفهارس
- إعادة هيكلة نموذجك الرسومي وتطويره