PDA

View Full Version : راهنمایی برای ایجاد دیتابیس تصویر ؟!



Heidari66
یک شنبه 20 اردیبهشت 1394, 21:39 عصر
سلام

یه برنامه ساده نوشتم که مشخصات یه قطعه رو همراه تصویر قطعه بهش میدیم و دخیره میکنه.
دیتابیس برنامه SQLite هست.
تصاویر برنامه که حجم زیادی هم میگیره و به مرور زمان حجمش بیشتر هم میشه بصورت فایل زیپ در آوردم در حالت NonCompress یعنی وقتی رکوردی رو ذخیره میکنم اطلاعات داخل دیتابیس SQLite ذخیره میشه و فایل عکس هم داخل یه فایل زیپ ذخیره میشه.
بعد از مدتی کار کردن با برنامه و وارد کردن اطلاعات بعضی از عکس ها مشکل میخورن یا اصلا خود دیتابیس تصاویر مشکل میخوره و خطا میده که باید بازیابیش کنم.

حالا دوستان چه روش و پیشنهاد جایگزینی دارن؟

ممنون

systam
یک شنبه 20 اردیبهشت 1394, 23:03 عصر
حالا دوستان چه روش و پیشنهاد جایگزینی دارن؟
سلام
میتونی عکسها رو کد گذاری کنی با رمز و در پوشه ذخیره کنی
کسی دستش بهشون نمیرسه

Heidari66
یک شنبه 20 اردیبهشت 1394, 23:21 عصر
سلام
میتونی عکسها رو کد گذاری کنی با رمز و در پوشه ذخیره کنی
کسی دستش بهشون نمیرسه
نمیخوام فایل های تصویر در دسترس باشه چون امکان تغییرنام یا حذف شدنشون هست
میخام داخل یه دیتابیس باشه که کلا دسترسی بهش نباشه.

Heidari66
دوشنبه 21 اردیبهشت 1394, 15:06 عصر
دوستان لطفا راهنمایی کنید...

ghasem110deh
سه شنبه 22 اردیبهشت 1394, 01:20 صبح
سلام
من با اسکولایت کار نکردم ... ولی ظاهر بیشتر بدرد برنامه ایی با حجم نسبتا پایین میخوره (1 تا 2 گیگ) که قطعیت نداره و مناسب هستش ...
اگه حجم بانک بالا میره از sql استفاده کنید !
هر چند اونجا اگه حجم تصاویر خیلی بالا باشه ... دیتبیس خیلی حجیم بشه ... ظاهرا سرعت پایین میاد !

http://social.technet.microsoft.com/wiki/contents/articles/6519.storing-images-and-photos-in-sql-server.aspx

اما با همین اطللاعات دست و پا شکسته میدونم اسکولایت بدرد این کار نمیخوره (نه که نشه)

nunegandom
سه شنبه 22 اردیبهشت 1394, 02:30 صبح
با سلام
شاید اینجوری بشه
یه اکانت دیگه بساز و ادمینش کن
این اکانت فعلی رو یوزر کن
حالا یک فولدر توی یک درایو میسازی مثلا D
پرمیشن فولدری که ساختی رو فقط برای ادمین باز بذار
با استفاده از manifest میتونی پرمیشن برنامه رو ببری روی بالاترین لول فقط نمیدونم روی اکانت رمز دار هم جواب میده یا نه

Heidari66
سه شنبه 22 اردیبهشت 1394, 07:24 صبح
سلام
من با اسکولایت کار نکردم ... ولی ظاهر بیشتر بدرد برنامه ایی با حجم نسبتا پایین میخوره (1 تا 2 گیگ) که قطعیت نداره و مناسب هستش ...
اگه حجم بانک بالا میره از sql استفاده کنید !
هر چند اونجا اگه حجم تصاویر خیلی بالا باشه ... دیتبیس خیلی حجیم بشه ... ظاهرا سرعت پایین میاد !

http://social.technet.microsoft.com/wiki/contents/articles/6519.storing-images-and-photos-in-sql-server.aspx

اما با همین اطللاعات دست و پا شکسته میدونم اسکولایت بدرد این کار نمیخوره (نه که نشه)

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

Heidari66
سه شنبه 22 اردیبهشت 1394, 07:25 صبح
با سلام
شاید اینجوری بشه
یه اکانت دیگه بساز و ادمینش کن
این اکانت فعلی رو یوزر کن
حالا یک فولدر توی یک درایو میسازی مثلا D
پرمیشن فولدری که ساختی رو فقط برای ادمین باز بذار
با استفاده از manifest میتونی پرمیشن برنامه رو ببری روی بالاترین لول فقط نمیدونم روی اکانت رمز دار هم جواب میده یا نه

دوست عزیز میشه بیشتر توضیح بدی یا نمونه کد بزاری
برنامه های دیگه از چه روشی استفاده می کنند؟!

ghasem110deh
سه شنبه 22 اردیبهشت 1394, 12:06 عصر
میخام داخل یه دیتابیس باشه که کلا دسترسی بهش نباشه.

بالاتر که گفتین میخواین تو دیتابیش باشه :)
--------
معمولا عکس های حجیم و تعداد بالا رو تو بانک ذخیره نمیکنم ... همونطور که دوستان گفتن توی یه پوشه میریزن و آدرس رو ذخیره میکنم !
روش های مختلف هم هست ... مثلا همین قفل کردن پوشه (که از تو خود برنامه هم میشه این کار رو کرد)
یا حتا عکس ها رو رمزنگاری کرد :

http://www.codeproject.com/Articles/723175/Image-Cryptography-using-RSA-Algorithm-in-Csharp

.
.
.
یه روش دیگه (که خیلی اطلاعات ندارم در موردش) اینه که عکس ها رو توی فایل dll ذخیره میکنن ! (صوت و فیلم هم میشه)
ولی چون تصاویر شما تو خود برنامه ایجاد میشه ، نمیشه این کار رو کرد !

nunegandom
سه شنبه 22 اردیبهشت 1394, 12:40 عصر
ارتباط از طریق ادمین رمز دار (http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C)
تغییر سطح دسترسی به فولدر (http://www.c-sharpcorner.com/uploadfile/babu_2082/adding-groups-user-names-and-permissions-for-a-directory-in-C-Sharp/)
اضافه کردن و... کلا کار با یوزر (که من با کماند پرومپت بیشتر حال میکنم) (http://www.windows-commandline.com/add-user-from-command-line/)