PDA

View Full Version : سوال: بهترین روش برای نگهداری عکسها در سیستم



adineh67
یک شنبه 10 اسفند 1393, 23:03 عصر
سلام به همگی
دوستان من یه پروژه باید طراحی کنم که توش عکسای زیادی ذخیره میشن(این عکسها از اسکن یسری فرم و سند بدست میان)
نمیخوام به علت بالا رفتن حجم دیتابیس عکسها در پایگاه داده ذخیره بشن و میخوام روی سیستم قرار بگیرن و آدرسشون تو پایگاه دخیره بشه
از طرفی هر کسی نباید به این عکسها دسترسی داشته باشه
1)آیا راهی هست که بتونم عکسها رو تو سیستم ذخیره کنم اما فقط در برنامه قابل رویت باشن؟
2)و اینکه چطور میتونم عکسی با کمترین حجم و بیشترین رزولوشن داشته باشم؟

من سرچ کردم ولی مطلب مناسبی دراینباره پیدا نکردم ممنون میشم راهنماییم کنید

Mofid.m
یک شنبه 10 اسفند 1393, 23:14 عصر
اگر بخوای عکس ها توی سیستم ذخیره بشن و کسی نتونه ببینه و آدرسش تو دیتابیس خوب مسلما هر کسی می تونه عکس رو ببینه.
اما یه روشی هست که تا حالا برای خودم پیش نیومده ازش استفاده کنم. ولی شاید بدردت بخوره
اونم اینه که کنار فایل اجراییت یه پوشه بزار تا عکس ها اونجا ذخیره بشن و آدرس هم تو دیتابیس
اما موقع ذخیره سازی بیا فرمت عکس ها رو عوض کن به هر فرمتی که دوست داری.
اینطوری فایل ها نا شناخته میشه.
زمانی هم که بخوای توی PictureBox نمایش بدی بیا دوباره فرمتشو بزار Jep و بعد نمایش بده
البته اینم بگم شاید روش های بهتری هم باشه...

golbafan
یک شنبه 10 اسفند 1393, 23:19 عصر
سلام از دیتابیسهای مخصوص استوریج که بر اساس فایل کار میکنن به عنوان دیتابیس کمکی استفاده کنید مشکل براحتی حل خواهد شد:بوس:

http://www.mongodb.org/

systam
یک شنبه 10 اسفند 1393, 23:25 عصر
سلام از دیتابیسهای مخصوص استوریج که بر اساس فایل کار میکنن به عنوان دیتابیس کمکی استفاده کنید مشکل براحتی حل خواهد شد:بوس:

http://www.mongodb.org/
سلام دوست عزیز این سایت خارجیست
میتونی برامون بیشتر توضیح بدی

adineh67
یک شنبه 10 اسفند 1393, 23:31 عصر
سلام از دیتابیسهای مخصوص استوریج که بر اساس فایل کار میکنن به عنوان دیتابیس کمکی استفاده کنید مشکل براحتی حل خواهد شد:بوس:

http://www.mongodb.org/

ممنون میشم بیشتر راهنمایی بفرمایین

محمد آشتیانی
یک شنبه 10 اسفند 1393, 23:35 عصر
سلام دوست عزیز این سایت خارجیست
میتونی برامون بیشتر توضیح بدی


سلام
میتونید در تالار NoSQL مطالب بیشتری در این مورد مطالعه کنید http://barnamenevis.org/forumdisplay.php?203-NoSQL



اما اگر با SqlServer میخواهید کار کنید امکان استفاده از قابلیت FileStream رو دارید که فکر کنم از ورژن 2008R2 و بعد از اون قرار داده شده
طبق مستندات مایکروسافت برای نگهداری فایل های با حجم بیشتر از یک مگابایت استفاده از این ویژگی راندمان بهتری داره و برای زمانی که حجم کمتر از این مقدار رو بخواهید ذخیره کنید به روش معمولی و یک فیلد از نوع (varbinary(max برای ذخیره سازی در نظر بگیرید.

توضیحات بیشتر https://technet.microsoft.com/en-us/library/bb933993(v=sql.105).aspx



موفق باشید

adineh67
دوشنبه 11 اسفند 1393, 08:31 صبح
اما اگر با SqlServer میخواهید کار کنید امکان استفاده از قابلیت FileStream رو دارید که فکر کنم از ورژن 2008R2 و بعد از اون قرار داده شده


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

golbafan
دوشنبه 11 اسفند 1393, 08:40 صبح
بابت راهنماییتون سپاسگزارم
فقط متوجه نشدم این Filestream که فرمودین یک نوع داده فرضا مثل string بحساب میاد؟
این برنامه ای که گفتم رو واسه دفتر اسناد میخوام تعداد بالایی عکس نگه داری میکنه و اسناد محرمانه هستند
نمیتونم تخمین بزنم که چقدر فضا لازم داره چون به مرور تعداد عکسها بالا میره الان نمیدونم باید این عکسها رو کجا ذخیره کنم که هم محرمانگی حفظ بشه و هم اینکه حجم بانک بالا نره که تو جستجو به مشکل بخورم

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

adineh67
دوشنبه 11 اسفند 1393, 10:07 صبح
سلام اگر درست ایندکس بزارید حجم بالا میره ولی سرعت کم نمیشه
باید در یک جدول دیگه فقط فیلد blob و یک فیلد id داشته باشید برای ذخیره عکسها
و در داده های اصلی تون فقط کافیه فیلد id اون جدول رو قرار بدین

دوست عزیز دیتا بیس پروژم رو با اس کیو ال درست کردم این کاریو که فرمودین داخل اس کیو ال انجام بدم؟
فیلد blob از چه نوعی باید باشه؟
دیتابیس استوریج هم که فرمودین من اصلا باهاش آشنایی ندارم ممنون میشم توضیح بیشتری بدین؟

ahmadnajaf403i
دوشنبه 11 اسفند 1393, 10:31 صبح
دوست عزیز دیتا بیس پروژم رو با اس کیو ال درست کردم این کاریو که فرمودین داخل اس کیو ال انجام بدم؟
فیلد blob از چه نوعی باید باشه؟
دیتابیس استوریج هم که فرمودین من اصلا باهاش آشنایی ندارم ممنون میشم توضیح بیشتری بدین؟

فیلد blob از نوع blob هست دیگه

adineh67
دوشنبه 11 اسفند 1393, 10:47 صبح
آخه اس کیو ال همچین نوعی نداره، نکنه منظورشون یه نرم افزار دیگه بوده :گیج:

محمد آشتیانی
دوشنبه 11 اسفند 1393, 11:09 صبح
سلام
خیر FileStream یک نوع داده نیست ، بلکه یک قابلیت است که از نسخه 2008R2 اضافه شده ، این مطلب رو بخونید (فارسی) http://www.dotnettips.info/post/331/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-filestream-%D8%A7%D8%B3-%DA%A9%DB%8C%D9%88%D8%A7%D9%84-%D8%B3%D8%B1%D9%88%D8%B1-2008-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84

* نوع BLOB هم همون
(varbinary(max هست که تو پست قبلیم اشاره کردم.


موفق باشید