PDA

View Full Version : کمک در جستجو پیشرفته



shahin69
چهارشنبه 22 آبان 1392, 11:07 صبح
سلام
دوستان من یه جدول محصولات دارم که شامل برند کالا قیمت رنگ توضیحات است
فیلد توضیحات هم شامل مشخصات کالا است
محصولات فروشگاه هم شامل پرینتر موبایل تبلت لپتاپ و ....
الان میخوام جستجو پیشرفته بزارم مثلا براساس شرکت سازنده و براساس
سیستم عامل و حافظه و cpu و...
ایا باید برای هرکدام از این ها یک فیلد جدا در جدول محصولات بزارم ؟؟؟

اگر اینجوری باشه من باید برای هر محصول یک جدول جدا بزارم؟؟
ممنون میشم کمکم کنید؟؟؟

smksmk
چهارشنبه 22 آبان 1392, 11:21 صبح
سلام
شما جستجو رو برا اساس فیلدهایی که دارین انجام میدین نه اینکه حالا فیلد بسازم برای جستجو. مرحله بعد هم اینکه فیلدهای حداکثر و حداقل قیمت ، جستجوی محصول و... که ورودی میگیرن رو مشخص کنی ، بعضی فیلدها هم که خودت مشخص میکنی با check box یا drop down برای شرکتهای سازنده و ... که حق انتخاب مشخصه .

shahin69
چهارشنبه 22 آبان 1392, 16:28 عصر
من طبق اون فیلد هایکه در دیتابیسم دارم میتونم براساس قیمت و رنگ و نوع برند جستجو را بزارم
ولی مثلا اگر بخوام برای موبایل براساس نوع سیستم عامل جستجو بزارم باید چیکار کنم؟؟

smksmk
چهارشنبه 22 آبان 1392, 16:59 عصر
قبلاً باید یه فیلد در جدولت برای ذخیره نوع سیستم عامل در نظرگرفته باشی ، سعی کن ذخیره اطلاعات در دیتابیس رو به صورت عددی انجام بدی ، یعنی برای مواردی مثل رنگ ، سیستم عامل ، شرکت سازنده و چند تای دیگه که مثل همینا هست متنشو ذخیر نکن فقط یه عدد بهش اختصاص بده و اونو ذخیره کن و برای بازیابی هم برای هر فیلد تابع جدا بنویس که بتونی سریع نشون بدی . در کل برای سرچ این موردی که فرمودین باید فیلد جدا باشه و گرنه باید سرچ در همون فیلدی که اطلاعات هست انجام بشه که کار جالبی نیست.

مهرداد سیف زاده
چهارشنبه 22 آبان 1392, 17:04 عصر
یک فیلد در جدول مشخصات کالا بزارید بنام info
حالا اطلاعات اضافی هر کالا رو بصورت زیر تعریف کنید و در این فیلد ذخیره کنید

مثلا گوشی سامشونگ با رنگ قرمز و سیستم عامل اندروید
os=android;color:red;brand=samsung

گرفتن این اطلاعات از کاربر و ذخیره در این فیلد بصورت رشته بالا کار راحتی هست
حالا در جستجوی خودتون از دستور like استفاده کنید بصورت زیر
مثلا پیدا کردن گوشی که سیستم عامل اون اندروید هست

SELECT * FROM `mobile_table` WHERE `info` LIKE '%os=android%';

معمولا در طراحی سیستم‌هایی که قراره یه سری اطلاعات اضافی که متغییر هم هست از کاربر دریافت بشه این روش میتونه کارساز باشه
البته فرم این روزش هم بصورت جاوا اسکریپت تهیه میشه و بشته به سلیقه کاربر میتونه هر تعداد فیلد اضافی برای مشخصات یک کالا داشته باشه

vatansever
پنج شنبه 23 آبان 1392, 00:03 صبح
xml روش بهتري نيست؟