Quantcast
Viewing all articles
Browse latest Browse all 2016

‫مدل EAV چیست؟

EAVمخفف (Entity Attribute Value) می‌باشد، مدلی از طراحی دیتابیس که کاربر را به آیتم‌های ثابت محدود نمی‌کند، فرض کنید در یک فروشگاه می‌خواهید چندین کالا بفروشید هر کالا هم برای خودش ویژگی‌های منحصر به فرد دارد، آیا با ویژگی‌های ثابت برای کالاهای متفاوت می‌توان پاسخگوی نیاز مشتری بود؟ یقینا پاسخ منفی خواهد بود.

موجودیت (Entity): در یک سیستم می‌تواند کالا، مشتری، فروشنده و... باشد.

ویژگی (Attribute):برای کالا: رنگ، وزن و... برای مشتری:نام، تلفن،آدرس و... می‌باشد

مقدار(value):هر ویژگی برابر مقداری می‌باشد مثلا برای رنگ‌ها آبی، قرمز و.. می‌باشد

جداول پایه طراحی شده:

Image may be NSFW.
Clik here to view.
مدل EAV

ورود داده ها:

شیوه ورود داده‌ها را برای موجودیت کالا بیان می‌کنیم
ابتدا کالا در جدول موجودیت ثبت می‌گردد
سپس عنوان ویژگی‌های آن مانند رنگ، وزن و... در جدول ویژگی‌ها ثبت می‌گردد.

مقدار هر ویژگی  هم در جدول مقدار‌ها ثبت می‌شود.

در زیر شیوه ذخیره به صورت شکل مشاهده می‌کنید.

Image may be NSFW.
Clik here to view.


شیوه خواندن داده ها:

این قسمت هم به راحتی با 2 inner joinمی‌توان به کالا، ویژگی‌ها و مقادیر آن دست پیدا کرد.

نکات:

نکته1: این 3 جدول را باید برای هر موجودیت قابل توسعه ایجاد کرد، مثلا برای کالا، مشتری و...

نکته2: می‌توان برای گروه بندی کالا‌ها و همچنین ویژگی‌ها جداول جداگانه ایی تعریف کرد.

نکته3: از مهمترین ویژگی‌های این تفکر قابل گسترش بودن سیستم می‌باشد.

نکته4: می‌توان برای آیتم هایی مثل نمایش داده شود یا خیر، چیدمان نمایش و...آیتم هایی به جدول ویژگی‌ها اضافه کرد.

نکته5: این مدل در نرم افزار magento استفاده شده است.

همچنین جهت مطالعه بیشتر ساختار دیتابیس مجنتو در لینک زیر می‌باشد.

MAGENTO_v1.0.19700---Database-Diagram.zip 
منابع:Entity–attribute–value model


Viewing all articles
Browse latest Browse all 2016