۰۹-تير-۱۳۸۵, ۰۸:۱۸:۰۳
سلام
یه سری خصوصیات محصولات داریم مانند: رنگ ، وزن ، قیمت و...
رنگها تعریف شده و میتوانند 1 یا 2 و یا 3 باشند.
وزن و قیمت و دیگر خصوصیات نیز به همین ترتیب.
هر محصول ، در ازای تمامی این خصوصیات یک مقدار داره.
مقادر خصوصیات (1و2و3و...) ممکن است کم یا زیاد بشن.
این خصوصیات هم (رنگ و وزن و...) ممکن است کم یا زیاد بشن .
طبیعی است که محصولات هم ممکن است کم و زیاد بشن.
تیبلی با نام value برای مقادیر خصوصیات در نظر میگیرم. (1و2و3و...)
تیبلی با نام properties برای خصوصیات در نظر میگیریم. (رنگ و وزن و...)
تیبلی با نام products برای محصولات در نظر میگریم .
و توسط کلیدهای یکتا اونها رو بهم ارتباط میدیم.
products > properties > value
به عنوان مثال:
مانیتور>رنگ>مشکلی
کیبرد>رنگ>سفید
لپتاپ>وزن>3کیلو
اگر خصوصیات مشخص و ثابت بودند که کار بسیار راحت میشد. یعنی به ازای هر خاصیت یک فیلد اختصاص داده میشد و به ازای هر محصول یک رکورد ثبت میشد که فید های (خصوصیات) مربوط به هر محصول رو میشد مقدار دهی کرد و یا مدیریت کرد.
اما در این مثال خود خصوصیات یا به عبارتی فیلدها متغییر هستند!
راهی که به نظر میرسه اینه که برای خصوصیات یک جدول تخصیص داده بشه و هر بار برای هر محصول از طریق کلید آن خصوصیت ، مقداری بهش انتساب داده بشه . یعنی اگر یک محصول 3 تا خاصیت داره ، پس سه رکورد برای اون محصول باید ثبت بشه که هر رکورد بیانگر مقدار یک خاصیت است. و یا اگر محصولی 5 خصیصه دارد ، باید 5 رکورد براش در نظر گرفت.
خب این راهی است که به نظر میرسه اما این روش مشکلاتی داره از جمله اینکه کار جستجو رو بسیار پیچیده میکنه و همچنین کار مدیریت روی خواص رو کمی سخت میکنه .
راه دیگه که به ذهن میرسه اینه که فیلدهای بانک اطلاعاتی رو متغییر کنیم . یعنی هر بار که خصیصه جدیدی ثبت میشه ، یک فیلد به تیبل مربوط به محصولات افزوده بشه. البته من فکر میکنم این روش زیاد اصولی نباشه چون حدس میزنم در حین اجرای برنامه بهتر است فیلدها تغییری نکنند.
نظر شما در رابطه با این پروژه چیه ؟ آیا اگوریتم خاصی پیشنهاد میکنید؟
لازم نیست که بگم سیستمی که در بالا توضیح داده شد یک مثال بود و برای سیستم های مشابه مانند نمرات دروس دانش آموزان یک مدرسه و بسیاری موارد دیگر کاربرد داره.
پ.ن: لطفا توی پرانتز بگید، کوئری که نام کلیه فیلدها رو برمیگردونه چیه ، اصلا همچین چیزی امکانپذیره؟
باتشکر
نبی
یه سری خصوصیات محصولات داریم مانند: رنگ ، وزن ، قیمت و...
رنگها تعریف شده و میتوانند 1 یا 2 و یا 3 باشند.
وزن و قیمت و دیگر خصوصیات نیز به همین ترتیب.
هر محصول ، در ازای تمامی این خصوصیات یک مقدار داره.
مقادر خصوصیات (1و2و3و...) ممکن است کم یا زیاد بشن.
این خصوصیات هم (رنگ و وزن و...) ممکن است کم یا زیاد بشن .
طبیعی است که محصولات هم ممکن است کم و زیاد بشن.
تیبلی با نام value برای مقادیر خصوصیات در نظر میگیرم. (1و2و3و...)
تیبلی با نام properties برای خصوصیات در نظر میگیریم. (رنگ و وزن و...)
تیبلی با نام products برای محصولات در نظر میگریم .
و توسط کلیدهای یکتا اونها رو بهم ارتباط میدیم.
products > properties > value
به عنوان مثال:
مانیتور>رنگ>مشکلی
کیبرد>رنگ>سفید
لپتاپ>وزن>3کیلو
اگر خصوصیات مشخص و ثابت بودند که کار بسیار راحت میشد. یعنی به ازای هر خاصیت یک فیلد اختصاص داده میشد و به ازای هر محصول یک رکورد ثبت میشد که فید های (خصوصیات) مربوط به هر محصول رو میشد مقدار دهی کرد و یا مدیریت کرد.
اما در این مثال خود خصوصیات یا به عبارتی فیلدها متغییر هستند!
راهی که به نظر میرسه اینه که برای خصوصیات یک جدول تخصیص داده بشه و هر بار برای هر محصول از طریق کلید آن خصوصیت ، مقداری بهش انتساب داده بشه . یعنی اگر یک محصول 3 تا خاصیت داره ، پس سه رکورد برای اون محصول باید ثبت بشه که هر رکورد بیانگر مقدار یک خاصیت است. و یا اگر محصولی 5 خصیصه دارد ، باید 5 رکورد براش در نظر گرفت.
خب این راهی است که به نظر میرسه اما این روش مشکلاتی داره از جمله اینکه کار جستجو رو بسیار پیچیده میکنه و همچنین کار مدیریت روی خواص رو کمی سخت میکنه .
راه دیگه که به ذهن میرسه اینه که فیلدهای بانک اطلاعاتی رو متغییر کنیم . یعنی هر بار که خصیصه جدیدی ثبت میشه ، یک فیلد به تیبل مربوط به محصولات افزوده بشه. البته من فکر میکنم این روش زیاد اصولی نباشه چون حدس میزنم در حین اجرای برنامه بهتر است فیلدها تغییری نکنند.
نظر شما در رابطه با این پروژه چیه ؟ آیا اگوریتم خاصی پیشنهاد میکنید؟
لازم نیست که بگم سیستمی که در بالا توضیح داده شد یک مثال بود و برای سیستم های مشابه مانند نمرات دروس دانش آموزان یک مدرسه و بسیاری موارد دیگر کاربرد داره.
پ.ن: لطفا توی پرانتز بگید، کوئری که نام کلیه فیلدها رو برمیگردونه چیه ، اصلا همچین چیزی امکانپذیره؟
باتشکر
نبی