امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
نویسنده پیام
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #1
تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
سلام

یه سری خصوصیات محصولات داریم مانند: رنگ ، وزن ، قیمت و...
رنگها تعریف شده و میتوانند 1 یا 2 و یا 3 باشند.
وزن و قیمت و دیگر خصوصیات نیز به همین ترتیب.
هر محصول ، در ازای تمامی این خصوصیات یک مقدار داره.
مقادر خصوصیات (1و2و3و...) ممکن است کم یا زیاد بشن.
این خصوصیات هم (رنگ و وزن و...) ممکن است کم یا زیاد بشن .
طبیعی است که محصولات هم ممکن است کم و زیاد بشن.
تیبلی با نام value برای مقادیر خصوصیات در نظر میگیرم. (1و2و3و...)
تیبلی با نام properties برای خصوصیات در نظر میگیریم. (رنگ و وزن و...)
تیبلی با نام products برای محصولات در نظر میگریم .
و توسط کلیدهای یکتا اونها رو بهم ارتباط میدیم.
products > properties > value
به عنوان مثال:
مانیتور>رنگ>مشکلی
کیبرد>رنگ>سفید
لپتاپ>وزن>3کیلو

اگر خصوصیات مشخص و ثابت بودند که کار بسیار راحت میشد. یعنی به ازای هر خاصیت یک فیلد اختصاص داده میشد و به ازای هر محصول یک رکورد ثبت میشد که فید های (خصوصیات) مربوط به هر محصول رو میشد مقدار دهی کرد و یا مدیریت کرد.
اما در این مثال خود خصوصیات یا به عبارتی فیلدها متغییر هستند!
راهی که به نظر میرسه اینه که برای خصوصیات یک جدول تخصیص داده بشه و هر بار برای هر محصول از طریق کلید آن خصوصیت ، مقداری بهش انتساب داده بشه . یعنی اگر یک محصول 3 تا خاصیت داره ، پس سه رکورد برای اون محصول باید ثبت بشه که هر رکورد بیانگر مقدار یک خاصیت است. و یا اگر محصولی 5 خصیصه دارد ، باید 5 رکورد براش در نظر گرفت.
خب این راهی است که به نظر میرسه اما این روش مشکلاتی داره از جمله اینکه کار جستجو رو بسیار پیچیده میکنه و همچنین کار مدیریت روی خواص رو کمی سخت میکنه .
راه دیگه که به ذهن میرسه اینه که فیلدهای بانک اطلاعاتی رو متغییر کنیم . یعنی هر بار که خصیصه جدیدی ثبت میشه ، یک فیلد به تیبل مربوط به محصولات افزوده بشه. البته من فکر میکنم این روش زیاد اصولی نباشه چون حدس میزنم در حین اجرای برنامه بهتر است فیلدها تغییری نکنند.
نظر شما در رابطه با این پروژه چیه ؟ آیا اگوریتم خاصی پیشنهاد میکنید؟

لازم نیست که بگم سیستمی که در بالا توضیح داده شد یک مثال بود و برای سیستم های مشابه مانند نمرات دروس دانش آموزان یک مدرسه و بسیاری موارد دیگر کاربرد داره.

پ.ن: لطفا توی پرانتز بگید، کوئری که نام کلیه فیلدها رو برمیگردونه چیه ، اصلا همچین چیزی امکانپذیره؟

باتشکر
نبی

۰۹-تير-۱۳۸۵, ۰۸:۱۸:۰۳
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #2
RE: تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
حالا اگه نوشتي به ما هم مي دي :d
دو روش به ذهنم مي رسه يكي استفاده از يه فيلد به صورت TEXT و ريختن همه خصوصيات تو اون و يا همون اضافه كردن فيلد ها كه براي بدست آوردن فيلد ها يه Select * بزار بعد با Foreach بخونش (اسم فيلدها رو هم به همين روش مي شه در اورد)
يه راه ديگه هم هست ببيت OSCommerce ‌چه جوري كار مي كنه :d

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۰۹-تير-۱۳۸۵, ۱۰:۰۵:۵۱
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #3
RE: تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
البته من برای فروشگاه آن لاین نمیخوام(فروشگاه قبلا نوشتم ! از همون روش دومی که خودم گفتم) . اصلش یه بانک اطلاعاتی املاک است ولی میشه به همه چیز تعمیمش داد... این یکی چون باید سرچ قوی داشته باشه دیگه اون روش های من کارساز نیست...
به تو هم میدم عزیزم ، ولی پولشم میگیرم [تصویر:  65.gif]

خب روشی که گفتی تو تکست بنویسم، خوبه ولی وقتی مثلا میخوایم محصولی دارای رنگ و وزن خاصی است(یعنی خصوصیاتی رو همزمان داشته باشه) رو سرچ کنیم کمی کار مشکل میشه .
البته این راه تو اولویت قرار داره ، ولی شاید راه بهتری پیدا بشه...
اون کلک مرغابی واسه پیدا کردن فیلدها هم باحال بود روش کار میکنم.
ولی نظرت رو راجع کم و زیاد کردن فیلدها هم بگو...
تشکر
نبی

۰۹-تير-۱۳۸۵, ۱۲:۰۲:۳۲
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #4
RE: تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
البته فکر کنم ریختن خصوصیات در یک فیلد text هم مشکلاتی داشته باشه .
مثلا اینجوری ذخیره میکنیم:
[1:1][1:2][3:2]

که عدد اول شماره مشخصه و عدد دوم شماره مقدار اون است .
جستجوش مشکلی نداره ، چون میشه مشخصه و مقدار هایی رو که کاربر میخواد سرچ کنه به هم بچسبونیم و در فیلد با دستور like سرچ کنیم .
ولی حالا اگر قرار باشه یه مشخصه تغییر کنه یا اصلا میخوایم مقدار یه مشخصه رو استخراج کنیم ! باید تمامی رشته رو استخراج و آنالیز کنیم که اینکار زمان بره ، من تا حد امکان میخوام اینکار رو خود mysql انجام بده .

لطفا راهنمایی کنید.
نبی

۰۹-تير-۱۳۸۵, ۲۳:۳۶:۴۹
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #5
RE: تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
حامد اون کلک مراغابی رو بنداز دور! چون یه کوئری براش وجود داره که عروسک کار میکنه:
SHOW COLUMNS FROM tbName
اسم و نوع و... فیلدها رو برمیگردونه...

۱۰-تير-۱۳۸۵, ۰۵:۰۲:۴۷
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #6
RE: تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
"به تو هم میدم عزیزم ، ولی پولشم میگیرم"
خوب پس يادت باشه پول جواب هايي كه من مي دم رو ازش كم كني
و اما مسكن فقط تو يهمين چند تا رفيقي كه من دارم (اگه خودم هم اضافه كني ) نفر چهارمي هستي كه اين فكر به ذهنت مي رسه توي اينترنت فكر كنم خيلي امي باشي ;)
و اما خصوصيت ها يه فكر راحت تر بيا تعدادش رو محدود كن مثلا 10 تا حالا 10 تا فيلد بزار ولي اسمش رو تو يه جدول ديگه ذخيره كن مثلا هر محصول يا خونه 10 تا مشخصه اضافه داره و اسم اين مشخصه ها توي يه table ديگست و اگه اسمي براي اون مشخصه نداشت يعني اون مشخصه رو نداره
فيلد هاي متغير تعداد فيلدهاي ديتابيس رو الكي زياد مي كنه مثلا براي يه محصول كه فيلد وزن مهمه و براي يكي ديگه طول حالا هر دوي اينها بايد وزن و طول رو داشته باشن و يه جا بايد حاليش كني براي اولي كه وزن داره طول رونشون نده

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۰-تير-۱۳۸۵, ۰۹:۰۱:۱۳
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #7
RE:  تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
NabiKAZ نوشته است:حامد اون کلک مراغابی رو بنداز دور! چون یه کوئری براش وجود داره که عروسک کار میکنه:
SHOW COLUMNS FROM tbName
اسم و نوع و... فیلدها رو برمیگردونه...
اولا حامد خودتي Wink ثانيا جالبه بلد نبودم

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۰-تير-۱۳۸۵, ۰۹:۱۰:۰۴
وب سایت ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #8
RE:  تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
ha_60 نوشته است:و اما خصوصيت ها يه فكر راحت تر بيا تعدادش رو محدود كن مثلا 10 تا حالا 10 تا فيلد بزار ولي اسمش رو تو يه جدول ديگه ذخيره كن مثلا هر محصول يا خونه 10 تا مشخصه اضافه داره و اسم اين مشخصه ها توي يه table  ديگست و اگه اسمي براي اون مشخصه نداشت يعني اون مشخصه رو نداره
فيلد هاي متغير تعداد فيلدهاي ديتابيس رو الكي زياد مي كنه مثلا براي يه محصول كه فيلد وزن مهمه و براي يكي ديگه طول حالا هر دوي اينها بايد وزن و طول رو داشته باشن و يه جا بايد حاليش كني براي اولي كه وزن داره طول رونشون نده
اما اگر خواستی این کار رو کنی بهت پیشنهاد می کنم با دخیل کردن یکمی ریاضی
کارت رو راحت تر کنی و فقط یک فیلد به ده تا فیلد دیگه اضافه کن تا بتونی بفهمی
درون اون ده تا فیلد مقدار کدوم خصوصیات هستند.

اول به تک تک خصوصیات کد به ترتیب زیر بده:
1 و  2  و 4  و 8  و 16  و 32   و  ...
فرضا میشه اینجوری:
رنگ=1
وزن=2
قیمت=4
سایز=8
مدل=16
مارک=32

خوب حالا فرض کن کالای A خصوصیات رنگ(1) و قیمت(4) و سایز (8) رو داره باید این اعداد رو باهم Or کنی:

A= 8 or 4 or 1 => 13

و شما 13 رو در فیلد یازدهم ذخیره می کنی.
حالا در زمان خواندن رکورد محصول A می خوای بدونی که ایا این محصول
خصوصیت سایز رو داره یا نه:
باید کد سایز با کد فیلد یازدهم And کنی اگر جواب خود کد سایز شد
معلوم میشه که محصول A اون خصوصیت رو داره:

HaveSize = 13 And 4 => 4

یا مثلا مدل رو در کالای A نداریم چون:

HaveModel = 13 And 16 => 0

البته فکر می کنم در دستورات SQL بشه از اینطور پردازه های ریاضی هم استفاده کرد. شرمنده که من زیاد با دیتا بیس و SQL آشنایی ندارم وگرنه بیشتر از این کمک می کردم.
درضمن روشی که معرفی کردم اسمش هست منطق Operator که اگر برنامه نویس ها این روش رو بدونند خیلی از مشکلاتشون در کد نویسی حل میشه.
خود من در کدهای سنگین و کلاس بالا زیاد دیدم که درشون از این روش استفاده شده.
(آخرین ویرایش در این ارسال: ۱۰-تير-۱۳۸۵, ۱۸:۱۸:۱۲، توسط Darg.)
۱۰-تير-۱۳۸۵, ۱۸:۱۲:۲۲
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #9
RE:   تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
ha_60 نوشته است:
NabiKAZ نوشته است:حامد اون کلک مراغابی رو بنداز دور! چون یه کوئری براش وجود داره که عروسک کار میکنه:
SHOW COLUMNS FROM tbName
اسم و نوع و... فیلدها رو برمیگردونه...
اولا حامد خودتي  (; ثانيا جالبه بلد نبودم

پس حامد کی بود !
h_h...?!
ای دی هاتون مثل همه ... h ها قاطی شده !
Rolleyes

۱۱-تير-۱۳۸۵, ۱۹:۴۵:۳۶
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #10
RE:   تجزیه و تحلیل یک فروشگاه با خصوصیات محصولات...
Darg نوشته است::
اول به تک تک خصوصیات کد به ترتیب زیر بده:
1 و  2  و  4  و  8  و  16  و  32   و  ...
فرضا میشه اینجوری:
رنگ=1
وزن=2
قیمت=4
:

اوووووم ! Amaze
ایده خیلی جالبی بود ! کیف کردم !!!
یعنی خیلی جاها میتونه کاربرد داشته باشه ولی جاش اینجا نیست !
وقتی میشه با چک کردن وجود یه رکورد یا عدم اون پی برد که فلان خاصیت وجود داره یا نه نیازی با این همه پیچیدگی نیست ....

بازم تشکر میکنم .
نبی


۱۱-تير-۱۳۸۵, ۱۹:۴۹:۰۱
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] فرمول تولید id برای محصولات crafcrab 3 2,328 ۱۳-آذر-۱۳۹۴, ۰۰:۲۹:۱۵
آخرین ارسال: Ghoghnus

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS