ورود

View Full Version : ذخیره عکس در دیتابیس یا خارج از آن؟



sa_ostad
دوشنبه 07 مرداد 1387, 20:30 عصر
در حال نوشتن برنامه ای هستم که باید مقداری عکس پرسنلی و عکس های دیگری را به جز اطلاععات معمول در بانک اطلاعات SQL ذخیره کنم. حالا نمیدونم آیا عکس ها را که ممکن حجم شون زیاد هم باشه در بانک ذخیره کنم یا در پوشه ای کنار برنامه و آدرس را در دیتابیس ذخیره کنم؟
پیشنهاد شما چیه؟

jaza_sa
دوشنبه 07 مرداد 1387, 21:10 عصر
به نظرمن بهتره که مسیر فایل ها رو داخل دیتابیس ذخیره کنید.
به این دلایل :
بعد از مدتی ، حجم دیتابیس افزایش پیدا خواهد کرد و ممکنه براتون مشکلاتی بوجود باید.
دسترسی به عکس ها راحت تره.
این روش ساده تره.

Xcalivorse
دوشنبه 07 مرداد 1387, 21:54 عصر
اگر هم می خواهی در دیتابیس ذخیره کنی بهتره از دو جدول استفاده کنی. یکی برای ذخیره تصاویر و دیگری برای ذخیره اطلاعات پرسنلی. که می تونی جداول فوق رو بوسیله فیلد کلید به هم مرتبط کنی. با این کار زمانی که نیاز به جستجو و واکشی اطلاعات پرسنلی بدون نیاز به واکشی عکس پرسنلی داری سرعت پاسخگویی دیتابیست عالیه. به نظر من (البته اگر از شیوه فوق استفاده کنید) ذخیره عکس در دیتابیس بهتره و امنیت نسبی بیشتری داره و سیستمت منسجم تر عمل میکنه.

sa_ostad
دوشنبه 07 مرداد 1387, 22:46 عصر
تا چه حجمی از عکس رو میتونم ذخیره کنم؟
منظورم اینه که محدودیت داره؟
چه نوعی بزارم بهتره؟

jaza_sa
دوشنبه 07 مرداد 1387, 23:35 عصر
اگر هم می خواهی در دیتابیس ذخیره کنی بهتره از دو جدول استفاده کنی. یکی برای ذخیره تصاویر و دیگری برای ذخیره اطلاعات پرسنلی. که می تونی جداول فوق رو بوسیله فیلد کلید به هم مرتبط کنی.
البته اگر بخواهیم اصول نرمال سازی رو درنظر نگیرم این حرف کاملا درست است.
چون در نرمال سازی ، جداولی که دارای یک کلید اصلی مشترک هستند رو یکی میکنند.

ghoroghchian
دوشنبه 07 مرداد 1387, 23:45 عصر
در SQL فکر نکنم محدودیتی برای حجم داشته باشی
بهتره داخل دیتا بیس ذخیره بشه
اما آسون تره که داخل یه پوشه با نام Id همون شخص ذخیره بشه چونId یکتا هست
برای امنیت هم میتونی موقع ذخیره پسوند عکسا رو عوض کنی و موقع استفاده دوباره پسوندو بر گردونی

sa_ostad
دوشنبه 07 مرداد 1387, 23:52 عصر
آدرس ها رو چطوری ذخیره کنم که بعدا که برنامه رو دوباره نصب کنن مشکل پیش نیاد؟
منظورم بعد از نصب ویندوز و این حرفاست .

Sajjad.Aghapour
سه شنبه 08 مرداد 1387, 00:00 صبح
خوب وقتی برنامه از روی سیستم remove میشه باید دیتابیس با همه مخلفاتش نگه داشته بشه تا اطلاعات از بین نره.پس اول باید چاره ای برای این کار بیاندیشید.برای ذخیره کردن آدرس هم فکر نکنم مشکلی وجود داشته باشه.به هر حال ذخیره کردن یک رشته آسونتر از ذخیره یک عکس در دیتابیسه...
می تونید اسم عکس رو بگیرید و با اسم دایرکتوری که عکس ها رو توش ذخیره می کنید الحاق کنید...

razavi_university
سه شنبه 08 مرداد 1387, 00:31 صبح
البته در صورتی که می خوایید عکس ها رو بر روی هارد ذخیره کنید امنیت رو هم حتما در نظر بگیرید

ghoroghchian
سه شنبه 08 مرداد 1387, 00:32 صبح
دوست من سلام

آدرس ها رو چطوری ذخیره کنم که بعدا که برنامه رو دوباره نصب کنن مشکل پیش نیاد؟
منظورم بعد از نصب ویندوز و این حرفاست .

چه جوری آدرس دیتابیسو ذخره می کنی؟
خوب پوشه عکسا رو توی همون مسیر قرار بده

yasercomeng
سه شنبه 08 مرداد 1387, 03:00 صبح
در SQL فکر نکنم محدودیتی برای حجم داشته باشی
بهتره داخل دیتا بیس ذخیره بشه


بيشتر از دو گيگ نميتونيد اطلاعاتي رو در ديتابيس ذخيره كنيد.
در ظمن مي تونيد اجازه تعيين مسير ذخيره پايگاهتون رو به كاربر مدير بدهيد و در هر صورت اگر اتفاقي هم براي اطلاعات پايگاه بيافتد مسئول اين بي احتياطي خود مدير خواهد بود.

Xcalivorse
سه شنبه 08 مرداد 1387, 20:23 عصر
البته اگر بخواهیم اصول نرمال سازی رو درنظر نگیرم این حرف کاملا درست است.
چون در نرمال سازی ، جداولی که دارای یک کلید اصلی مشترک هستند رو یکی میکنند.

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

top7news
چهارشنبه 09 مرداد 1387, 00:15 صبح
سلام
منم خودم تو چندتا از برنامه هام عکس ها رو توی یه جدول مجزا که با کلید اصلی به جدول دیگه مربوط شده ، استفاده کردم و هیچ مشکلی چه از نظر تداخل و چه از نظر سرعت نداشتم .
البته پیشنهاد میکنم در صورت زیاد شدن حجم بانکت ، به نرم افزارت این امکان رو بید که مثلا در هر چند ماه یکبار از برخی جدول های پر حجمت پشتیبان بگیره و اونا رو پاک کنه که حجم بانک اصلی افزایش پیدا نکنه .

razavi_university
چهارشنبه 09 مرداد 1387, 01:13 صبح
بيشتر از دو گيگ نميتونيد اطلاعاتي رو در ديتابيس ذخيره كنيد.

این محدودیت فقط درSQL نسخه Express وجود دارد و در باقی نسخه ها نامحدود است

sa_ostad
چهارشنبه 09 مرداد 1387, 01:34 صبح
سلام
منم خودم تو چندتا از برنامه هام عکس ها رو توی یه جدول مجزا که با کلید اصلی به جدول دیگه مربوط شده ، استفاده کردم و هیچ مشکلی چه از نظر تداخل و چه از نظر سرعت نداشتم .
البته پیشنهاد میکنم در صورت زیاد شدن حجم بانکت ، به نرم افزارت این امکان رو بید که مثلا در هر چند ماه یکبار از برخی جدول های پر حجمت پشتیبان بگیره و اونا رو پاک کنه که حجم بانک اصلی افزایش پیدا نکنه .

لطفا بیشتر توضیح بدید.
چطور این امکان رو به نرم افزارم بدم؟
برنامه من قراره بیشتر روی مدیریت عکس های با کیفیت بالا کار کنه به خاطر همین حجم دیتابیسم زیاد میشه!

علیرضا مداح
چهارشنبه 09 مرداد 1387, 07:37 صبح
سلام دوست عزیز ،

این محدودیت فقط درSQL نسخه Express وجود دارد و در باقی نسخه ها نامحدود است
توجه کنید که در SQL Server Express ، ماکزیمم سایز دیتابیس 4 گیگابایت میباشد ،/

sa_ostad
شنبه 12 مرداد 1387, 00:12 صبح
دوستان نظرتون چیه که به جای SQL از Access استفاده کنم؟ اون که محدودیت های SQL EXPRESS رو نداره !

mohammed
سه شنبه 05 آذر 1387, 17:23 عصر
Access از SQL Express خیلی محدود تر است.

ضمنا محدودیت فقط فضای ذخیره سازی نیست مسایل بسیار دیگری هم در بحث محدودیت مطرح است.

fa_te64
چهارشنبه 06 آذر 1387, 00:09 صبح
چطور بايد تنظيم مسير پايگاه داده رو به مدير بانك سپرد،آيا ميشه ستاپ برنامه رو طوري تنظيم كرد كه مسير پايگاه داده رو بپرسه و در كد چطور بايد به اون مسير دسترسي داشت؟