Mohammad Jawad Barati
Mohammad Jawad Barati
خواندن ۱ دقیقه·۴ سال پیش

تفاوت Schema ،model و DDL

شاید شما هم خیلی براتون جالب باشه که اینا چی هستن؟ تفاوتشون تو چیه؟ چرا اصلا هستن؟ و ...

نظر شخصی من در مورد دیتابیس های NoSQL اینه که داشتن schema یا model خیلی چیز باحالی نیست. یعنی وقتی خود این دیتابیس ها میگن با من schemaless میتونی کار بکنی چه دردی هست که براشون schema یا model تعریف بکنیم؟

تعریف mongoose ای model:

  • مدل همون constructor هایی هستن که از روی schema ساخته میشه.
  • به instance یه model داکیومنت میگیم.
  • مدل ها مسئول خوندن و ایجاد داکیومنت تو دیتابیس مانگو هستن.
  • فانکشن mongoose.model یه schema رو کامپایل میکنه و به مدل تبدیلش میکنه.
  • قبل از کامپایل schema باید همه کارایی (مثل hook ها) رو که میخواستی انجام بدی، انجام داده باشی.

در کل میشه گفت که schema فقط چهارچوب کالکشن رو مشخص میکنه ولی مدل واسط بین تو و دیتابیس مانگو هست. همه کوئری هاتو با model میزنی.

تعریف schema:

  • یه چیزی هست که چهارچوب یه جدول یا کالکشن رو توش مشخص می‌کنی.
let userSchema = schema.define('local', { username: String, password: String, }); // define your schema module.exports = mongoose.model('User', userSchema); // compile your schema

تعریف DDL:

  • یه چیزی که باهاش روی دیتابیس کوئری میزنی.

تعریف Repository:

  • وقتی میخوای با دیتابیس توی asp.net core ور بری باید یه ریپوزیتوری تعریف بکنی. توی نود.جی‌اس ما ریپوزیتوری نداریم. بلکه ریپوزیتوری هامون همون مدل هامون هستن.

نکته: توی Sequelize ما یه چیزی تحت عنوان model نداریم. model و schema توی sequelize با هم ترکیب شدن.


رفرنس

نود جی‌اسمدلschemanosqlsql
برنانه نویس، مدرس، محقق. عاشق انیمه هستم و دنبال چالش ها جدید.
شاید از این پست‌ها خوشتان بیاید