نمایش نتایج 1 تا 39 از 39

نام تاپیک: ذخیره عکس به طور نامحدود در دیتابیس

  1. #1
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

    ذخیره عکس به طور نامحدود در دیتابیس

    سلام دوستان
    من درگیر پروژه ای شدم که سازمان مقابل من میخواد علاوه بر یه سری اطلاعات متنی میخواد تعدادی عکس (که این عکس ها اسناد و مدارک هستند) رو در دیتابیس ذخیره کنند.
    مشکل اینه که اونا میگن تعداد عکس ها مشخص نیست (یعنی ممکنه واسه یک مورو 1 دونه عکس ذخیره کنند و واسه مورد دیگه 30 تا عکس ذخیره کنند)
    میشه راهنماییم کنین واسه این تعداد نا معلوم عکس فیلدهای دیتابیس و همچنین فیلدهای سمت سی شارپ رو چجور در نظر بگیرم؟
    ممنون از شما

  2. #2
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    سلام.
    طوری که من متوجه شدم شما با نحوه ذخیره کردنش عکس مشکلی ندارین درسته؟؟

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

    حالا برای سمت سی شارپ باید این امکان رو بذارین که کاربر برای هر آیتم بتونه به اندازه ای نامحدود عسکس اضافه کنه که میتونید هرکسی که اضافه شد رو در یه گرید نشون بدین. یا مثل قسمت Attachment یاهو عمل کنید. که البته من مورد اول رو پیشنهاد میکنم.

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

    امیدوارم متوجه شده باشین.
    اگه جایی مبهم بود درخدمتم.
    موفق باشید

  3. #3
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,906

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

    سلام دوست عزیز
    در این مورد خیلی باید دقت کنید چون بانک برنامه باید صحیح طراحی بشه
    یک Table باید برای عکس درست کنی و رابطه 1 به چند بدی و مشخصه های از جمله ID,path,fileName,... بدی اینا رو همینطور ذهنی گفتم بعد دو جدول رو به وسیله کلید اصلی بهم وصل کنی
    در ضمن برای سرعت بیشتر میتونی یک نسخه از عکس در مسیر برنامه کپی کنی و فقط آدرس عکس رو در بانک ذخیره کنی
    موفق باشی

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    نقل قول نوشته شده توسط morteza271 مشاهده تاپیک


    برای اینکار بهتره که یه جدوا جدا برای عکس ها در نظر بگیرین (چون که تعداد عکس برای هر آیتم مشخص نیست)
    و در اون جدول یه کلید خارجی داشته باشین به جدول مربوطه و یه فیلد هم داشته باشین برای خود عکس، که البته میتونید فیلدهایی مثل نام عکس و ... رو هم در نظر بگیرین.
    اره.حرف شما درسته.شما فرض کن تو صفحه ثبت من طرف فقط میخواد به تعداد نامحدود عکس اضافه کنه(و البته یه شماره ثبت که بگه این عکسها مربوط به این شماره هست).پس بنظر من با این تفاسیر یه تیبل میشه.با فیلدهای id , pic 1 , pic 2 , pic 3, ...

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,717

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

    نقل قول نوشته شده توسط mahdidabaghi مشاهده تاپیک
    پس بنظر من با این تفاسیر یه تیبل میشه.با فیلدهای id , pic 1 , pic 2 , pic 3, ...
    سلام. وقتی تعداد عکس ها نامحدوده (یا بهتره بگیم تعداد نامشخصه) دیگه نمیتونی pic1 و pic2 و pic3 و... داشته باشی چون باید تعداد فیلدهای جدولتون مشخص باشن. یه فیلد رو id بذار و فیلد دوم رو هم pic بذار.

  6. #6
    کاربر دائمی آواتار firoozi90
    تاریخ عضویت
    آذر 1390
    محل زندگی
    تهران
    پست
    572

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

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

  7. #7
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    نقل قول نوشته شده توسط mahdidabaghi مشاهده تاپیک
    اره.حرف شما درسته.شما فرض کن تو صفحه ثبت من طرف فقط میخواد به تعداد نامحدود عکس اضافه کنه(و البته یه شماره ثبت که بگه این عکسها مربوط به این شماره هست).پس بنظر من با این تفاسیر یه تیبل میشه.با فیلدهای id , pic 1 , pic 2 , pic 3, ...
    نه دوست عزیز شما نباید برای هر عکس یه ستون مجزا در نظر بگیرین.
    همونطور که دوستمون mohammaddou گفتن باید یه جدول مجزا بسازین که یه id داشته باشه و یه ستون pic .
    و بعد ثبت مثلا هر شخص به تعداد عکس هایی که واسش اضافه شده در این جدول سطر ایجاد کنید و در ستون id شناسه شخص رو قرار بدین.
    مثلا یه شخص ثبت می کنید که id یا همون شناسش میشه 10 و مثلا 3تا عکس براش قرار میدین.
    حال باید در این جدول سه سطر به صورت زیر اضافه بشه :
    10 pic1
    10 pic2
    10 pic3

    موفق باشید

  8. #8
    کاربر دائمی آواتار firoozi90
    تاریخ عضویت
    آذر 1390
    محل زندگی
    تهران
    پست
    572

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

    نقل قول نوشته شده توسط morteza271 مشاهده تاپیک
    نه دوست عزیز شما نباید برای هر عکس یه ستون مجزا در نظر بگیرین.
    همونطور که دوستمون mohammaddou گفتن باید یه جدول مجزا بسازین که یه id داشته باشه و یه ستون pic .
    و بعد ثبت مثلا هر شخص به تعداد عکس هایی که واسش اضافه شده در این جدول سطر ایجاد کنید و در ستون id شناسه شخص رو قرار بدین.
    مثلا یه شخص ثبت می کنید که id یا همون شناسش میشه 10 و مثلا 3تا عکس براش قرار میدین.
    حال باید در این جدول سه سطر به صورت زیر اضافه بشه :
    10 pic1
    10 pic2
    10 pic3

    موفق باشید
    دوستمون میگن که معلوم نیست که واسه هر شناسه چندتا عکس درج بشه.حالا ممکنه 1 عکس باشه یا 30 تا عکس

  9. #9

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

    سلام
    تنها راهش استفاده از جدول مجزاس(دوستان اشاره کردن)
    اما یک مشکل دیگه اینه که اگر خود عکس رو در بانک ذخیره کنین خیلی زود حجم بانک شما زیاد میشه(احتمال زیاد نسخه ای که استفاده میکنید حجم بانک محدوده)
    برای اینکار می بایست آدرس عکس رو ذخیره کنید که در اینصورت امنیت پایین میاد(خارج از برنامه عکس ها قابل مشاهده هستن) پس باید رمزگذاری هم بشن و در عملیات backup, restore هم تغییراتی ایجاد کنید

  10. #10
    کاربر دائمی آواتار firoozi90
    تاریخ عضویت
    آذر 1390
    محل زندگی
    تهران
    پست
    572

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

    هیچکس تاحالا منظور دوستمون به طور کامل متوجه نشده.

  11. #11
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,717

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

    نقل قول نوشته شده توسط firoozi90 مشاهده تاپیک
    دوستمون میگن که معلوم نیست که واسه هر شناسه چندتا عکس درج بشه.حالا ممکنه 1 عکس باشه یا 30 تا عکس
    منظور از pic1 و pic2 و pic3 ، نام عکس ها هست نه اینکه جدول ما سه فیلد pic2، pic1 و pic3 داشته باشه.

    نقل قول نوشته شده توسط firoozi90 مشاهده تاپیک
    هیچکس تاحالا منظور دوستمون به طور کامل متوجه نشده.
    ما منظور ایشون رو درک کردیم، شما باید یه خورده بیشتر روی جواب های ما دقت کنید.

  12. #12
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    نقل قول نوشته شده توسط firoozi90 مشاهده تاپیک
    دوستمون میگن که معلوم نیست که واسه هر شناسه چندتا عکس درج بشه.حالا ممکنه 1 عکس باشه یا 30 تا عکس
    میشه بفرمائید چه مشکلی توی طرحی که دادم هست؟؟؟؟
    من گفتم واسه هر عکس یه رکورد درج میشه در جدولی جداگانه حالا میخواد یه عکس باشه یا 100 تا باشه یا 1000 تا باشه یا اصلا نباشه...
    چه مشکلی داره ....

    در ضمن همونطور که دوستمون گفتن فکر کنم تنها شما متوجه نشدین که منظور دوستمون چیه وگرنه بقیه همگی متوجه شدن...
    یه خورده به تایپیک و پست ها دقت کنید بعد بیاید یه پست بذارین و نظر بدین...

  13. #13

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

    من هم با یه جدول مجزا موافقم

  14. #14
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    با سلام
    اگه دیر جواب میدم معذرت میخوام
    از جواب های تک تک دوستان که مث همیشه شرمندم کردن بسیار ممنونم
    پس نتیجه واسه سمت دیتابیس این شد که دو ستون داشته باشم(همون چیزی که اقا مرتضی گل تو پست7)
    حالا بیایم اینور یعنی سمت سی شارپ عزیز!!!!!!
    اینجا باید چجوری Open Dialog ها رو قرار بدم(یعنی چند تا)اخه تعداد که مشخص نیس....

  15. #15
    کاربر دائمی آواتار klinton
    تاریخ عضویت
    مهر 1388
    محل زندگی
    xoy
    پست
    177

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

    شما هرچه قدر هم عکس انتخاب کنید همش با آدرس و اسمشون قابل شناسایی هست (با open dialog) حالا همشو یک به یک با یه for میتونی ذخیره کنی معلومه که پیک for هم تعداد عکساتونه جدولتون هم دو تا فیلد داره یکی عکس و دیگری کلید خارجی

  16. #16
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    به نمونه برنامه ای که براتون گذاشتم دقت کنید :
    WindowsFormsApplication1.rar
    البته این نمونه فقط برای قسمت تصاویر هست و اگه قراره این تصاویر مثلا برای یک شخص باشه اطلاعات شخص هم باید دریافت بشه.
    موفق باشید.

  17. #17
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    نقل قول نوشته شده توسط klinton مشاهده تاپیک
    شما هرچه قدر هم عکس انتخاب کنید همش با آدرس و اسمشون قابل شناسایی هست (با open dialog) حالا همشو یک به یک با یه for میتونی ذخیره کنی معلومه که پیک for هم تعداد عکساتونه جدولتون هم دو تا فیلد داره یکی عکس و دیگری کلید خارجی
    مرسی ا پاسختون
    ولی همینجور که اشاره کردم چون تعداد عکس ها مشخص نیس نمیدونم چه جوری باید تعدادی نامحدود کنترل opendialog بذارم.اکی؟
    حالا اگه من بد متوجه شدم منظورتونو شرمنده...

  18. #18
    کاربر دائمی آواتار merlin425
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    پست
    141

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

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

  19. #19
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

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

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

  20. #20

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

    اینجا باید چجوری Open Dialog ها رو قرار بدم(یعنی چند تا)اخه تعداد که مشخص نیس....
    نیاز به قرار دادن چند openFileDialog نداری !
    هر وقت که خواست عکسی رو اضافه کنه openfiledialog رو باز میکنه و متد های ذخیره سازی فراخوانی میشه
    و با همون یدونه openfiledialog میتونی چندین فایل رو باهم انتخاب کنی (در موردش سرچ کن )
    موفق باشید

  21. #21
    کاربر دائمی آواتار firoozi90
    تاریخ عضویت
    آذر 1390
    محل زندگی
    تهران
    پست
    572

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

    مثلا یه شخص ثبت می کنید که id یا همون شناسش میشه 10 و مثلا 3تا عکس براش قرار میدین.
    حال باید در این جدول سه سطر به صورت زیر اضافه بشه :
    10 pic1
    10 pic2
    10 pic3
    شما درست می گید من تو خوندن پستتون دقت نکردم مرتضی جان.اما منظورم هم نتونستم درست بگم.
    ولی این طرح شما و اینچیزی که شما می گید اصول طراحی دیتابیس توش رعایت نشده.و این اصول خیلی از بچه ها بهش توجه نمی کنند و بعد میگن چرا برنامه سرعتش پایین میاد و .........
    این طراحی شما آنامولی داره و نرمال سازی نشده
    حالا جدا از افزونگی که داره شما هیچ فکر کردید اگر اشتباها توی جدول عکس ها مثلا اشتباه عکسی وارد شد یا شناسه اشتباه شد و یا به هر دلیلی خواستیم در این جدول ویرایش انجام بدیم چطور باید این کارو انجام داد؟یعنی طرف بیاد مثلا 30تا شناسه 10 که داخلش هست رو دونه به دونه تغییر بده؟
    شما فورا موضع می گیرید و با عصبانیت می خواین از دیتابیس پیشنهادیتون دفاع کنید.
    حالا اگر همت کنید و دیتابیس رو کامل طراحی کنید تک به تک مشکلاشو میبینید و فقط شما به فکر این هستید که چطور 40 ، 50 تا عکس رو توی دیتابیس جا بدید.

  22. #22
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    شما فورا موضع می گیرید و با عصبانیت می خواین از دیتابیس پیشنهادیتون دفاع کنید.
    اولا من اصلا قصد موضع گیری و ... رو نداشتم فقط چون بدون هیچ دقتی گفتین که اصلا متوجه نشدین خواستم بهتون بگم که شما متوجه نشدین وگرنه منظور دیگه ای نداشتم.

    اما در مورد توضیحاتی که در مورد نرمال بودن دیتابیس گفتین :
    مثل اینکه شما هنوزم منظورم رو متوجه نشدین!!!!!!
    در اون مثالی که زدم عدد 10 شناسه شخص هست و کلید اصلی جدول اشخاص هست و قرار نیست تغییر بکنه!!!
    از طرفی کلید خارجی هم هست که به جدول اشخاص رفرنس داره، یعنی وقتی شخص موردنظر حذف بشه تمام تصاویر مربوط به اون شخص هم اتوماتیک حذف خواهد شد.
    اگر هم مشخصات شخص تغییر کرد که هیچ مشکلی نیست چون شناسه شخص یا همون کلید اصلی تغییری نمیکنه!!

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

    حالا جدا از افزونگی که داره
    میشه بگین چطوری افزونگی داده بوجود میاد؟؟؟؟

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

  23. #23
    کاربر دائمی آواتار firoozi90
    تاریخ عضویت
    آذر 1390
    محل زندگی
    تهران
    پست
    572

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

    از طرفی کلید خارجی هم هست که به جدول اشخاص رفرنس داره، یعنی وقتی شخص موردنظر حذف بشه تمام تصاویر مربوط به اون شخص هم اتوماتیک حذف خواهد شد.
    اگر هم مشخصات شخص تغییر کرد که هیچ مشکلی نیست چون شناسه شخص یا همون کلید اصلی تغییری نمیکنه!!
    یعنی شما منظورتون اینه که از ویو استفاده کنید؟آخه من منظورتون متوجه نمیشم.اگر روش جدیدی توی طراحی دیتابیس بلدید به ما تازه واردها هم یاد بدید.

    میشه بگین چطوری افزونگی داده بوجود میاد؟؟؟؟
    همین که توی جدول مثلا ده تا شناسه 15 و صدتا شناسه 21 و ... باشه این افزونگی نیست؟

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

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

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

  24. #24
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,717

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

    نقل قول نوشته شده توسط firoozi90 مشاهده تاپیک
    یعنی شما منظورتون اینه که از ویو استفاده کنید؟آخه من منظورتون متوجه نمیشم.اگر روش جدیدی توی طراحی دیتابیس بلدید به ما تازه واردها هم یاد بدید.
    ببینید دوست عزیز، توی دیتابیس اگر خاصیت cascade رو برای جدول فعال کنیم وقتی شخص از جدول حذف بشه، زیر مجموعه هاش هم حذف میشن( یعنی کلید خارجی و رکورد(های) متعلق به اون حذف میشه). روش جدیدی نیست. سال هاست که این روش وجود داره.

    همین که توی جدول مثلا ده تا شناسه 15 و صدتا شناسه 21 و ... باشه این افزونگی نیست؟
    بپذیرید که مفهوم افزونگی رو درک نکردید. تکرار شناسه در جدول دوم (شامل id و pic ) اصلا ربطی به افزونگی نداره. عزیز،هر تکراری رو که بهش نمیگن افزونگی. بذارید بیشتر توضیح بدم. فرض کنید در همون جدول اول 8 فیلد داشته باشیم و حالا یه فیلد به نام pic اضافه کنیم. فرض کنید برای یک id بخوایم 20 تصویر ثبت کنیم، در اینحالت مجبوریم که 19 * 7 فیلد تکراری بدون کاربرد رو درج کنیم. چون بایستی در این حالت 20 سطر رو برای اون id داشته باشیم ( چون 20 تا عکس داره) و فقط اطلاعات سطر اول اون مفیده و بقیه سطرها به خاطر فیلد عکس بصورت تکراری و بیهوده درج میشن. حالا اگر یک جدول جداگانه ایجاد کنیم که شامل دو فیلد id و pic باشه برای همین id که 20 تا عکس داره کافیه 20 * 2 فیلد ایجاد کنیم. به اون اولی میگن افزونگی. روش دوم دقیقا برای فرار از افزونگی هست.

    این یه توجیح هست. یک طراحی خوب نمیتونه به جای ویرایش کردن حذف کردن رو پیشنهاد کنه.
    روشی که دوستمون گفتن ( و من هم تایید میکنم) برای ویرایش کردن مشکلی نداره. مگر نه اینکه ما زمان ویرایش به کلید اصلی رجوع می کنیم؟. در اینجا هم براحتی با کلید اصلی میشه ویرایش رو انجام داد و اصراری بر حذف به جای ویرایش کردن وجود نداره.
    به هر حال من سر حرف خودم هستم بهترین کار پویا کردن جدول ها هستش
    منظور از پویا کردن رو میشه کامل توضیح بدید؟. شاید ایده شما بهتر باشه.
    آخرین ویرایش به وسیله veniz2008 : جمعه 25 اسفند 1391 در 22:56 عصر

  25. #25
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    از دوست خوبم mohammaddou واقعا تشکر میکنم که خیلی کامل و روشن توضیح دادن و جواب شما رو به صورت کاملا منطقی دادن.
    دیگه بعید میدونم مشکلی با این روش داشته باشین و امیدوارم به نتیجه رسیده باشین.
    در مورد پویا کردن هم دوستمون خیلی خوب توضیح دادن و با یه مثال کامل نشون دادن که افزونگی یعنی چی...
    امیدوارم ابهامات برطرف شده باشه.
    موفق باشید

  26. #26
    کاربر دائمی آواتار merlin425
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    پست
    141

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

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

  27. #27
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    از تک تک دوستان کمال تشکر رو دارم.درباره مبحث افزونگی هم بحث جالبی مطرح شد.بابات برنامه مهندس مرتضی هم خیلی ممنونم.
    فقط اگر من خواسته باشم ادرس عکس رو تو دیتابیس بذارم میشه برنامه رو به صورت شبکه استفاده کرد؟ یعنی مثلا آدرس عکس توی روت درایو d درسیستم سروره.
    حالا یه کلاینت که ممکنه 20تا سیستم اونورتر باشه چجوری به این ادرس سرور مثلا برای گزارش گیریا دسترسی داشته باشه؟
    حقیقت هنو درگیر یه پروژه وب هستم که پیشنهاد این کار شد.انشاالله در اولین فرصت خودم یه سمپل جامع با راهنمایی هایی که عزیزان انجام دادن درست میکنم

  28. #28
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

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

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

  29. #29
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    مرسی مهدس جان
    من خودم تجربه ذخیره خود عکس رو در دیتابیس داشتم.تو اون پروژه واسه هر شی 60 تا فیلد و 4 تا عکس save میکردم.حالا شما فکرشو بکن سازمان طرف قراردادم میگفت من میخوام 90/000 اطلاعات مربوط به شی رو وارد کنم.یعنی 64*90000
    هرچند من کاربران اونجا رو ملزم به ذخیره سازی عکس زیر 10 کیلو کردم ولی بازم 90000*4*10 یه خورده واسه حجم دیتابیس زیاد میشه!!!!!!!!نه؟؟؟؟؟؟؟؟؟؟
    تازه بماند حجمی که واسه اون 90000*60 فیلد در نظر گرفته میشه.
    کلا سلکت گیری واسه گزارش گیریا شم که باید یه سلکت توپ مینوشتم(که نوشتم) تا بیاد این همه رکورد رو با سرعت مناسب نشون بده.
    حالا تو این پروژه میخوان عکس سند رو با نرم افزار نشون بدن و چون این اسناد به صورت متن هستن باید با کیفیت بالا(هر کدوم 5 mb) ذخیره بشن
    ببخشید داستان طولانی شد.کلا خواستم بگم که خودم با توجه به موارد بالا با ذخیره آدرس عکس موافقترم.البته اگه همونجور که گفتم مشکل با نحوه بازیابی اون توی کلاینت های دیگه توی شبکه حل بشه.

  30. #30
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,717

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

    نقل قول نوشته شده توسط mahdidabaghi مشاهده تاپیک
    من خودم تجربه ذخیره خود عکس رو در دیتابیس داشتم.تو اون پروژه واسه هر شی 60 تا فیلد و 4 تا عکس save میکردم.حالا شما فکرشو بکن سازمان طرف قراردادم میگفت من میخوام 90/000 اطلاعات مربوط به شی رو وارد کنم.یعنی 64*90000
    من برنامه شما رو ندیدم ولی احتمال بالای 99 درصد میدم که طراحی شما ایراد داشته. 60 فیلد برای یک موجودیت (یا رابطه) ؟؟؟. هنوز موردی رو ندیدم که 60 صفت ( فیلد) داشته باشه.
    هرچند من کاربران اونجا رو ملزم به ذخیره سازی عکس زیر 10 کیلو کردم ولی بازم 90000*4*10 یه خورده واسه حجم دیتابیس زیاد میشه!!!!!!!!نه؟؟؟؟؟؟؟؟؟؟
    به نظرم 10kb واسه یه عکس خیلی خوبه ( البته اگه از کیفیت عکسه چیزی باقی بمونه ).یعنی شما واسه این تعداد عکس چیزی در حدود ( 3515MB ( 3.43GB حجم نیاز دارید. ما اگه یه نگاه به سایت های استخدامی و ثبت نامی( مخصوصا سازمان سنجش) اگه بکنیم می بینیم اونجا هم کاربر رو ملزم به رعایت کردن سایز و کیفیت معینی میکنن. خودتون در نظر بگیرید که چه تعداد رکورد در این موارد ثبت میشه.(البته قصد این رو ندارم که اون سیستم رو با سیستم های خودمون قیاس کنم. فقط میخوام یه ذهنیتی نسبت به موضوع پیدا کنیم). مهم ترین عامل در چنین مواردی طراحی اصولی دیتابیس، بهترین روش ذخیره سازی و بهترین روش واکشی داده هاست. کلید موفقیت در پروژه های سنگین، تکنیک های مناسبی هست که ما استفاده می کنیم.

  31. #31

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

    سلام دوستان برنامه نویس . من یه پروژه عکاسی دارم که باید تا یه هفته دیگه تحویل استاد بدم مشکلم اینه که می خوام عکس رو تو دیتا بیس ذخیره کنم و هنگامی که سرچ رو زدم عکس مشتری با مشخصاتش رو نشون بده . دیتا بیسم هم مال خود برنامه ویژوال استودیو هستش (Microsoft SQL Server Compact 3.5) . خواهشا کمکککککک .

  32. #32
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,717

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

    نقل قول نوشته شده توسط leila_hassanpoor مشاهده تاپیک
    سلام دوستان برنامه نویس . من یه پروژه عکاسی دارم که باید تا یه هفته دیگه تحویل استاد بدم مشکلم اینه که می خوام عکس رو تو دیتا بیس ذخیره کنم و هنگامی که سرچ رو زدم عکس مشتری با مشخصاتش رو نشون بده . دیتا بیسم هم مال خود برنامه ویژوال استودیو هستش (Microsoft SQL Server Compact 3.5) . خواهشا کمکککککک .
    واسه سوالتون اول در سایت جستجو کنید. موردی رو که شما مد نظرتون هست قبلا بارها و بارها در سایت بحث شده. با فرض اینکه جواب سوالتون پیدا نشد باید یه تاپیک جدید ایجاد کنید نه اینکه تاپیک دوستتون رو با یه سوال شخصی خراب کنید.
    موفق باشید.

  33. #33
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    نقل قول نوشته شده توسط mohammaddou مشاهده تاپیک
    من برنامه شما رو ندیدم ولی احتمال بالای 99 درصد میدم که طراحی شما ایراد داشته. 60 فیلد برای یک موجودیت (یا رابطه) ؟؟؟. هنوز موردی رو ندیدم که 60 صفت ( فیلد) داشته باشه.
    مهندس جان اصلا تعجب نکن چون حالا شده.بذار اسم سازمان سکرت بمونه.ولی خود اون سازمان واسه اون موجودیت قبل این نرم افزار من چیزی حدود 80 صفت تعریف شده داشت که تازه با چونه زدن شد 60 تا.راجع به طراحی دیتابیس هم باید بگم با یکی از دوستان دیتابیس کار که تجربه چندین ساله تو این کار داشتند مشورت شده و بابت طراحی دیتابیس خیالتون راحت.یه مثال راحتشکه همون نوشتن سلکتی که (مثلا Select All که زیر 10 ثانیه اطلاعات رو نشون میده(واسه 50000 رکورد تست کردم)البته ادعایی هم واسه این کار ندارو .واسه اساتیدی مث شما که کار جیک ثانیه هس.ولی من مبتدی واسه اولین بار که انجامش دادم کلی حال کردم.ولی در کل تیبل ها و روابط بخوبی در دیتابیس رعایت شدند که افزونگی هم به حداقل برسه.
    ممنون از شرکت شما در بحث.از بحث اصلی که همون دسترسی به ادرس عکس ها در سیستم های کلاینت هست خارج نشیم

  34. #34
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

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

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

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

    یه مسئله دیگه که به نظرم میرسه اینه که برای هنگامی که میخواین پشتیبان گیری کنید این تصاویر رو یادتون نره و حتما این تصاویر رو هم به همراه فایل بک آپ به صورت زیپ شده نگه دارین و در هنگام بازیابی تصاویر رو به جای تصاویر موجود قرار بدین(یعنی اول تصاویر موجود رو حذف کنید و بعد تصاویر همراه فایل بک آپ رو کپی کنید.)

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

    موفق باشید.

  35. #35

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

    من خودم تجربه ذخیره خود عکس رو در دیتابیس داشتم.تو اون پروژه واسه هر شی 60 تا فیلد و 4 تا عکس save میکردم.حالا شما فکرشو بکن سازمان طرف قراردادم میگفت من میخوام 90/000 اطلاعات مربوط به شی رو وارد کنم.یعنی 64*90000
    هرچند من کاربران اونجا رو ملزم به ذخیره سازی عکس زیر 10 کیلو کردم ولی بازم 90000*4*10 یه خورده واسه حجم دیتابیس زیاد میشه!!!!!!!!نه؟؟؟؟؟؟؟؟؟؟
    تازه بماند حجمی که واسه اون 90000*60 فیلد در نظر گرفته میشه.
    گه بخواین تصاویر با حجم مثلا 5مگ رو در بانک ذخیره کنید خیلی سریع سرعت برنامتون کم میشه و اعصاب کاربران داغون!!!
    در صورتی که شما از SQL Server و از نوع داده (Varbinary(max برای ذخیره عکس استفاده میکنید مشکلی از نظر سرعت در قسمت هایی از برنامه که ربطی به اسناد ذخیره شده نداره پیدا نمیکنید چون SQL Server داده های Blob رو در Pageهای جدای از Pageهای اصلی دیتابیس ذخیره میکنه و همچنین از نظر فضای کل دیتابیس هم در صورت استفاده از
    SQL Server 2005 به بالا تا 524,272 ترا (+)
    SQL Server 2005 Express تا 4 گیگ
    SQL Server 2008 Express تا 10 گیگ (+)

    درصورت استفاده از SQL Server 2008 به بالا در مورد FileStream (+) جستجو کنید.
    در مورد استفاده از دیتابیس برای ذخیره فایل و یا ذخیره آدرس فایل و ... اینجا رو ببینید بد نیست
    به سوالات خصوصی پاسخ داده نمی شود.

  36. #36
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    نقل قول نوشته شده توسط morteza271 مشاهده تاپیک
    سلام.
    همونطور که قبلا گفتم اگه بتونید کاربر رو محدود کنید به انتخاب تصاویری با حجم محدود بهتره ولی به هر دلیلی ممکنه شما نتونید این کار رو بکنید. و از طرفی هم اگه بخواین تصاویر با حجم مثلا 5مگ رو در بانک ذخیره کنید خیلی سریع سرعت برنامتون کم میشه و اعصاب کاربران داغون!!!

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

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

    یه مسئله دیگه که به نظرم میرسه اینه که برای هنگامی که میخواین پشتیبان گیری کنید این تصاویر رو یادتون نره و حتما این تصاویر رو هم به همراه فایل بک آپ به صورت زیپ شده نگه دارین و در هنگام بازیابی تصاویر رو به جای تصاویر موجود قرار بدین(یعنی اول تصاویر موجود رو حذف کنید و بعد تصاویر همراه فایل بک آپ رو کپی کنید.)

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

    موفق باشید.
    مرتضی جان واقعا ازت ممنونم خیلی گلی از این که تو بحث شرکت میکنی و و نظرات قشنگتو بیان میکنی
    یه سوال داشتم.تو نت سرچ زدم دوستان راهنمایی کرده بودن که در برنامه های تحت شبکه باید با آی پی سیستم ها کار کنیم.(منظور سرور و کلاینت هاست.)
    حالا اگه عکس ها رو سرور و مثلا در root درایو d ذخیره شده باشه(یعنی همین ادرس در دیتابیس ذخیره شده باشه) ایا من واسه دسترسی به این ادرس در سیستم کلاینت باید کار خاصی انجام بدم؟
    یکی از دوستان میگفت باید کانکشن استرینگ سرور رو به صورت ای پی سیستم بنویسی و یه میانبر از فایل exe(فارسی رو پاس بداریم!!!!) روی کلاینت ها میندازیم و تموم.این حرف ایشون درسته؟

  37. #37
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    خواهش میکنم.
    ببینید برای برنامه ی شبکه ای شما باید روی سرور یه sql server نصب کنید و دیتابیس رو اتچ کنید.
    بعد روی کلاینت ها هم برنامتون رو نصب کنید.
    و کانکشن استرینگ هم میتونه به صورت زیر باشه :
    "Data Source=(local);Initial Catalog=DataBaseName;User Id=UserName;Password=Password;"

    که شما میتونید به جای (local) نام سرور و یا ip سرور رو بذارین.

    البته یه سری تنظیمات برای اتصال به دیتابیس باید بر روی ویندوز سیستم سرور و سیستم های کلاینت انجام بدین. اگه نمیدونین چه تنظمیاتی بگین تا یه فایل آموزشی براتون بذارم(این فایل رو از توی همین سایت قبلا دانلود کردم ولی الان آدرسشو ندارم).

  38. #38
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    مشهد
    پست
    518

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

    مرسی از راهنماییت
    ممنون میشم اون فایل اموزشیت رو هم بذاری

  39. #39
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,727

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

    خواهش میکنم.
    اینم اون فایل آموزشی :
    http://uplod.ir/0plhgfkxirvn/Under_Net.pdf.htm
    موفق باشید.

تاپیک های مشابه

  1. ذخیره عکس در دیتابیس به روشی دیگر
    نوشته شده توسط vb_nima در بخش برنامه نویسی در 6 VB
    پاسخ: 10
    آخرین پست: دوشنبه 13 اسفند 1386, 10:19 صبح
  2. ذخیره عکس در دیتابیس
    نوشته شده توسط na3er-faraji در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 02 شهریور 1385, 12:08 عصر
  3. پاسخ: 1
    آخرین پست: سه شنبه 25 بهمن 1384, 02:21 صبح
  4. ذخیره عکس در دیتابیس
    نوشته شده توسط mohsenaminzare در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 22 بهمن 1384, 15:53 عصر
  5. ذخیره عکس در دیتابیس
    نوشته شده توسط reham در بخش SQL Server
    پاسخ: 4
    آخرین پست: پنج شنبه 05 آذر 1383, 12:37 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •