English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

نموذج البيانات في MongoDB

بيانات MongoDB في نفس المجموعة لها نموذج灵活ة schema.documents. المستندات في نفس المجموعة. ليس من الضروري أن يكون لديهم مجموعة字 الحقول أو الحقول العامة المشتركة في المجموعة، يمكن أن تحتوي المستندات على أنواع بيانات مختلفة.

تصميم نموذج البيانات

MongoDB يقدم نوعين من نماذج البيانات: نموذج البيانات المدمج ونموذج البيانات المنظم. وفقًا للطلب، يمكنك استخدام أي من هذين النموذجين أثناء إعداد المستندات.

نموذج بيانات داخلي

في هذا النموذج، يمكنك جمع جميع البيانات ذات الصلة (المدمجة) في مستند واحد، ويسمى أيضًا نموذج بيانات غير معياري.

على سبيل المثال، إذا كنا نحصل على تفاصيل الموظف من ثلاثة مستندات مختلفة (تفاصيل شخصية، اتصال وعنوان)، يمكن ربط جميع هذه الثلاثة مستندات في مستند واحد، كما يلي:

{
	_id:,
	Emp_ID: "10025AE336"
	تفاصيل شخصية: {
		الاسم الأول: "Radhika",
		اسم العائلة: "Sharma",
		تاريخ الولادة: "1995-09-26"
	},
	اتصال: {
		البريد الإلكتروني: "[email protected]",
		الهاتف: "9848022338"
	},
	عنوان: {
		المدينة: "Hyderabad",
		المنطقة: "Madapur",
		الحالة: "Telangana"
	}
}

نموذج بيانات معياري

في هذا النموذج، يمكنك استخدام الاستدلال للاشارة إلى مستند فرعي في المستند الأصلي. على سبيل المثال، يمكنك إعادة كتابة الوثيقة التالية كنموذج معياري:

الموظف:

{
	_id: ObjectId101>,
	Emp_ID: "10025AE336"
}

تفاصيل شخصية:

{
	_id: ObjectId102>,
	empDocID: "ObjectId101",
	الاسم الأول: "Radhika",
	اسم العائلة: "Sharma",
	تاريخ الولادة: "1995-09-26"
}

اتصال:

{
	_id: ObjectId103>,
	empDocID: "ObjectId101",
	البريد الإلكتروني: "[email protected]",
	الهاتف: "9848022338"
}

عنوان:

{
	_id: ObjectId104>,
	empDocID: "ObjectId101",
	المدينة: "Hyderabad",
	المنطقة: "Madapur",
	الحالة: "Telangana"
}

ملاحظات عند تصميم البنية في MongoDB

  • تصميم البنية بناءً على طلب المستخدم.

  • إذا تم استخدامها معًا، فجمعها في وثيقة واحدة. وإلا، قم بتقسيمها (لكن تأكد من أنك لا تحتاج إلى ربط).

  • انسخ البيانات (لكن مع بعض القيود)، لأن مساحة التخزين أرخص من وقت الحوسبة.

  • قم بالربط عند الكتابة وليس عند القراءة.

  • تحسين خطةك لمواجهة الاستخدامات الأكثر شيوعًا.

  • تحقيق تحولات معقدة في البنية.

مثال على الخطوة الأولى

افترض أن يحتاج العميل إلى تصميم قاعدة بيانات لمدونته/موقعته ومراجعة الفروق بين تصميم RDBMS وMongoDB.

  • لدي كل مشاركة عنوانًا فريدًا ووصفًا وموقعًا.

  • يمكن أن تحتوي كل مشاركة على عدة علامات.

  • لدي كل مشاركة اسم ناشرها وعدد الأصوات الإجمالية.

  • كل مشاركة تحتوي على تعليقات قدمها المستخدم، وأسمائهم، الرسائل، تاريخ البيانات وعدد الأصوات.

  • يمكن أن يكون هناك على كل منشور عدد لا محدود من التعليقات.

في بنية RDBMS، سيكون التصميم المطلوب يحتوي على جداول على الأقل ثلاثة.

في نموذج MongoDB، سيكون التصميم يحتوي على مجموعة منشورات وفقًا للهيكل التالي-

{
   _id: POST_ID
   العنوان: TITLE_OF_POST, 
   الوصف: POST_DESCRIPTION,
   من: POST_BY,
   الرابط: URL_OF_POST,
   الوسوم: [TAG1, TAG2, TAG3],
   المفضلة: TOTAL_LIKES, 
   تعليقات: [	
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
         مثل: LIKES 
      },
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
         مثل: LIKES
      }
   ]
}

لذلك، عند عرض البيانات، في RDBMS، تحتاج إلى الاتصال بثلاثة جداول، بينما في MongoDB، سيتم عرض البيانات من مجموعة واحدة فقط.