PDA

View Full Version : گذاشتن عکس به صورت باینری در SqlServer



mohammad-seifi
پنج شنبه 07 تیر 1386, 14:44 عصر
اینکه مسیر را در یک فیلد قراردهم بلدم ولی می گن به صورت باینری بهتره.

کدام روش بهتره؟

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

fereshte22
پنج شنبه 07 تیر 1386, 15:30 عصر
عکس ها حجم زیادی را اشغال میکنند پس بهتره که خود عکس در دیتابیس ذخیره نشود مگر اینکه امنیت برامون خیلی مهم باشد

AminSobati
پنج شنبه 07 تیر 1386, 20:33 عصر
نگه داشتن تصاویر در دیتابیس مزایایی داره مثل:
- Backup/Restore یکپارچه
- Security یکپارچه
- شرکت در Replication
- ویرایش بصورت Transactional

تنها اشکالش بالارفتن حجم دیتابیس هست

mehdi.mousavi
پنج شنبه 07 تیر 1386, 21:03 عصر
اینکه مسیر را در یک فیلد قراردهم بلدم ولی می گن به صورت باینری بهتره.

کدام روش بهتره؟

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

سلام.
اگر اطلاعات عکس رو در بانک نگهداری کنید، اونوقت می تونید از خصایص متفاوتی که بانک در اختیارتون قرار میده استفاده کنید، مثل Backup گرفتن، Replication و ... فرض کنید که این اطلاعات در بانک قرار گرفتن و شما می خواهید اونها رو در یک صفحه HTML بسمت Client ارسال کنید. چیزی که اینجا خیلی ضروری هست، کنترل Caching هست تا IE، FF یا هر Browser دیگه ای هر بار هنگام لود شدن صفحه فایل عکس رو مجدد لود نکنه. برای اینکار باید کار بیشتری انجام بدید تا مطمئن بشید که User شما تجربه بدی هنگام دیدن صفحات web شما نداره و عکسها فقط هنگام لزوم از سرور گرفته میشن. اگر حجم فایلهایی که میخواهید نگهداری کنید زیاد هستن، توصیه میکنم حتی در صورت کنترل Caching از این روش استفاده نکنید (بخصوص برای صحات web) چون از نظر Performance در مقایسه با فایل سیستمها بسیار پایینتره. اما اگر این اطلاعات در حد Logo و ... هستن نگهداری اونها در بانک قابل قبوله. در غیر اینصورت، مسیر فایلها رو بصورت "related-path" در بانک نگهداری کنید، نه "Absolute path". منظورم از Related path این هستش که مثلا نام فایل رو به این صورت نگهداری کنید:

mydir\images\whatever.jpg و نه بصورت c:\mydir\images\whatever.jpg . در اینصورت میتونید براحتی و با تغییر چند پارامتر که در برنامه اتون میذارید، Base-path فایلها رو کنترل کنید بدون اینکه تغییری در بانک بوجود بیارید. اگر اینکارو کنید، دیگه نیازی به کار اضافه برای کنترل Browser Caching هم ندارید و همه چی بصورت خودکار انجام می شود.