PDA

View Full Version : سوال: ایجاد جدول مناسب برای فروشگاهی که تصاویر و توضیحات زیادی داره



i-php-i
چهارشنبه 21 خرداد 1393, 14:13 عصر
دیتابیس یه فروشگاه که دارای تعداد زیادی محصول و هر محصول دارای تعداد نامشخصی تصویر و مشخصات هست به چه صورت باید طراحی بشه؟

خودم می خوام اطلاعات اصلی محصولات توی یه جدول باشه، تصاویر توی یه جدول مجزا و مشخصات کالا که هر محصول می تونه تعداد مشخصات متفاوتی داشته باشه رو توی یه جدول ذخیره کنم.

همه جدولها از نوع myisam هستن و فروشگاه احتمالا 5-6 هزار محصول و روزی چند هزار بازدید کننده داشته باشه.

بنظرتون این روش که توضیح دادم برای این فروشگاه مناسبه؟

i-php-i
پنج شنبه 22 خرداد 1393, 12:13 عصر
لطفا راهنمایی کنید.

omidabedi
پنج شنبه 22 خرداد 1393, 12:40 عصر
اول اینکه engine دیتاهات innodb باشه بهتره چرا؟

چونکه دیتاها زیاد هستن امکان داره خراب بشن و میتونی اینارو ریکاوری کنی

میتونی بدون اینکه table هات lock بشن ازشون بکاپ بگیری

یه دلیل دیگه که بکار شما کمک میکنه امکان استفاده از foreign key در innodb هست

برای ذخیره ی اطلاعاتم بستگی به کارایی وب سایتت داره

اما بنظر من اینکارو کنی بهتره:

یک table برای محصولاتت بزار و ادرس عکس هارو بصورت ارایه و serialize کردن ارایه در یک فیلد ذخیره کن

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

i-php-i
پنج شنبه 22 خرداد 1393, 15:02 عصر
سرعت innobod بیشتره یا myisam ؟

موقع left join سرعت کدوم یکی بیشتره؟

numberone1
پنج شنبه 22 خرداد 1393, 15:14 عصر
یک راه برای ذخیره کردن عکس ها اینه که برای هر محصول یک فولدر ایجاد کنید (موقع ثبت محصول ) و عکس های محصول و داخلش ذخیره کنید. بدون اینکه تو دیتابیس ثبت بشه
دیگه میتونید یک تیبل image داشته باشید آدرس عکس ها رو توش ذخیره کنید به همراه آیدی محصول
فرضا شما 1000 تا محصول داشته باشید و برای هر محصول میانگین 10 تا عکس داشته باشید میشه 10 هزار ردیف که اصلا فشاری وارد نمیکنه

omidabedi
پنج شنبه 22 خرداد 1393, 15:36 عصر
سرعت innobod بیشتره یا myisam ؟

موقع left join سرعت کدوم یکی بیشتره؟

سرعت بازخوانی myisam بیشتره اما قابلیت innodb حداقل توی مورد شما بیشتر هست

بعدشم اینکه اصلا نگران سرعت نباشید چون توی مقدار 5 6 هزار رکورد مشکلی نداره اصلا

بیشتر تمرکز کنید روی نوشتن کوئری های بهینه

i-php-i
دوشنبه 26 خرداد 1393, 17:54 عصر
استفاده از serialize کردن ارایه و ذخیره اطلاعات توی یه فیلد باعث ایجاد سربار اضافه برای جدول نمی شه؟ این روش استاندارد تره یا اینکه یه جدول جدا برای توضیحات داشته باشیم و هر آیتم رو توی یه سطر از جدول ذخیره کنیم؟

nazanin_asadi_1
دوشنبه 26 خرداد 1393, 21:19 عصر
یک جدول واسه عکسها ایجاد کن که شامل آی دی مدل کالا و نام عکسها باشه
دوتا پوشه ایجاد کن یکی شامل عکسهای کوچیک باشه یکی شامل عکسهای بزرگ
جدول مدل کالاها هم یک فیلد برای نام کالاها و عنوان مدل کالا رو توش ذخیره میکنی

حالا وقتی عکسها رو آپلود کردی اونها رو اول عکسهای اورجینال (بدون دستکاری ) رو توی پوشه مثلا imgkalaorg بریز و بعد همون موقع از روی اون عکس یه عکس کوچیک بساز (باphp) و اون عکس رو هم توی پوشه مثلا imgkalasmall بریز

حالا توی جدول عکسها آی دی مدل کالا + فقط نام عکس (همراه پسوندش) رو ذخیره کن (اسم پوشه ها رو لازم نیست بیاری)

حالا هر موقع که خواستی راحت میتونی توی صفحه اصلی از عکسهای کوچیک استفاده کنی به این صورت که
رکورد عکسهای مربوط به یک مدل کالا رو انتخاب میکنی و کافیه به اول نامش imgkalaorg رو واسه عکسهای بزرگ و یا imgkalasmall رو واسه عکسهای کوچیک اضافه کنی

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

در حال حاضر توی جدول عکسهام نزدیک 6 هزارتا عکس ثبت شده پیشنهاد من واسه تو همینه

i-php-i
سه شنبه 27 خرداد 1393, 12:13 عصر
استفاده از serialize کردن ارایه و ذخیره اطلاعات توی یه فیلد باعث ایجاد سربار اضافه برای جدول نمی شه؟ این روش استاندارد تره یا اینکه یه جدول جدا برای توضیحات داشته باشیم و هر آیتم رو توی یه سطر از جدول ذخیره کنیم؟