PDA

View Full Version : سوال: مدلی پیشنهادی



darya-esf
یک شنبه 17 مرداد 1389, 23:06 عصر
:گیج:برای افزودن 1 یا چند صفت که در تعداد محدودی از رکوردها وجود دارد چه مدلی را پیشنهاد میکنید؟

محمد سلیم آبادی
دوشنبه 18 مرداد 1389, 11:29 صبح
با یک خط توضیح نمیشه پیشنهاد دقیقی دارد. باید دید چه عواملی برای شما در اولویت قرار دارند (مثلا آسودگی، نرمال بودن، فضا، سرعت دسترسی و ...).

برای پیاده سازی این نوع جداول چندین راه وجود دارد:
1. تجزیه جدول به دو (یا چندین) جدول و ایجاد یک ارتباط یک به یک.
2. پیاده سازی توسط Entity Attribute Value - EAV
3. در نظر گرفتن تمام خصیصه ها در جدول اصلی که در این حالت در جدول مقدار NULL فراوان میشود.

من بطور کلی گزینه اول و دوم را انتخاب می کنم.

علیرضا مداح
دوشنبه 18 مرداد 1389, 11:53 صبح
سلام،
1 - پیاده سازی مدل EAV با ایجاد جدول(های) مجزای Name/Value
Dave's guide to the EAV - SQL Server Blogs - SQLTeam.com (http://weblogs.sqlteam.com/davidm/articles/12117.aspx)

2 - پیاده سازی مدل EAV توسط Xml DataType معرفی شده در SQL Server 2005
Entity-Attribute-Value (EAV) model with SQL Server 2005 xml datatype (http://weblogs.sqlteam.com/mladenp/archive/2006/10/14/14032.aspx)

3 - پیاده سازی EAV توسط ColumnSet و Sparse Columns معرفی شده در SQL Server 2008
Bob Beauchemin's Blog | And the EAV winner is .... sparse columns (http://www.sqlskills.com/blogs/bobb/post/And-the-EAV-winner-is-sparse-columns.aspx)

همچنین می توان از Table های واقعی و مدل Relational برای ذخیره ی اطلاعات استفاده نمود،
باید فاکتورهای مختلفی را مبتنی بر سناریوی خود بررسی کرده و بهترین راه حل را انتخاب نمایید،/

محمد سلیم آبادی
دوشنبه 18 مرداد 1389, 13:14 عصر
البته بایستی توجه داشت که مدل EAV اشکالات فنی هم دارد. مثلا Attribute ها می توانند Data Type های مختلفی داشته باشند در نتیجه باعث زیر سوال رفتن جامعیت داده ها میشه ...
براج رفع این مشکل می توانید به مقاله آقای MVP Plamen Ratchev رجوع کنید:
http://pratchev.blogspot.com/2010/07/refactoring-entity-attribute-value.html

محمد سلیم آبادی
دوشنبه 18 مرداد 1389, 13:29 عصر
سلام،
1 - پیاده سازی مدل EAV با ایجاد جدول(های) مجزای Name/Value
Dave's guide to the EAV - SQL Server Blogs - SQLTeam.com (http://weblogs.sqlteam.com/davidm/articles/12117.aspx)

2 - پیاده سازی مدل EAV توسط Xml DataType معرفی شده در SQL Server 2005
Entity-Attribute-Value (EAV) model with SQL Server 2005 xml datatype (http://weblogs.sqlteam.com/mladenp/archive/2006/10/14/14032.aspx)

3 - پیاده سازی EAV توسط ColumnSet و Sparse Columns معرفی شده در SQL Server 2008
Bob Beauchemin's Blog | And the EAV winner is .... sparse columns (http://barnamenevis.org/forum/Bob%20Beauchemin%27s%20Blog%20%7C%20And%20the%20EA V%20winner%20is%20....%20sparse%20columns)

همچنین می توان از Table های واقعی و مدل Relational برای ذخیره ی اطلاعات استفاده نمود،
باید فاکتورهای مختلفی را مبتنی بر سناریوی خود بررسی کرده و بهترین راه حل را انتخاب نمایید،/

لینک سوم خرابه.