PDA

View Full Version : مبتدی: نحوه آپلود بیش از یک عکس برای هر نمونه



B@H@2R
پنج شنبه 14 آبان 1394, 00:33 صبح
سلام
چطور میتونم برای یک نمونه از آبحکت بیش از یک نمونه عکس تو بانک بذارم.
ینی متلا برای یه مطلب به خصوص آلبوم عکس درست کنم.در باره محدودیت یا عدم محدودیت تعداد عکس چی ؟

مثلا تو این سایت های فروش خودرو یه خودرو یک عکس داره یکی 10 تا یا بیشتر.
میخوام ببینم باید به ازای هر عکس یه رکورد تو بانک داشته باشم ! یا روش دیگه ای هست

aminmousavi
پنج شنبه 14 آبان 1394, 02:34 صبح
سلام دوست عزیز.
همانطور که خودتون گفتید باید به ازای هر عکس یک رکورد در جدول تصاویر (که کلید خارجی محصول در آن وجود دارد و فقط اسم فایل در آن ذخیره میشود) باید ایجاد شود این راه اصولی هست .
یک کار دیگر هم میتونید بکنید که پیشنهاد نمیکنم : به ازای هر رکورد محصول یک فولدر براش بسازید که اسم فولدر برابر هست با id محصول .
و برای هر محصول عکس هاش رو درون اون بریزید و هیچ چیزی در دیتابیس ذخیره نکنید فقط کار با io و file عکس هایی که آپلود شده رو بدست بیارید.

keiv@n
پنج شنبه 14 آبان 1394, 08:13 صبح
یه جدول عکس داریم و یه جدول محصول رابطه محصول با عکس یک به چند میشه ، کلید جدول عکس میاد میشینه کلید خارجی جدول محصول اینجوری به ازی بک محصول میتونی چند تا عکس داشته باشی
فکر می کنم دوستمون برعکس گفتن این مسئله رو

keiv@n
پنج شنبه 14 آبان 1394, 08:35 صبح
نه نه ببخشید اشتباه شد
یه جدول عکس داریم با کلید PictureId و یه جدول محصول با کلید ProductId باید فیلد ProductId داخل جدول عکس بیاد :

Pictrue_Table :
PK PictureId , ProductId , Src

Product_Table :
.....PK ProductId , Name , Category , Type

B@H@2R
پنج شنبه 14 آبان 1394, 11:46 صبح
سلام دوست عزیز.
همانطور که خودتون گفتید باید به ازای هر عکس یک رکورد در جدول تصاویر (که کلید خارجی محصول در آن وجود دارد و فقط اسم فایل در آن ذخیره میشود) باید ایجاد شود این راه اصولی هست .
یک کار دیگر هم میتونید بکنید که پیشنهاد نمیکنم : به ازای هر رکورد محصول یک فولدر براش بسازید که اسم فولدر برابر هست با id محصول .
و برای هر محصول عکس هاش رو درون اون بریزید و هیچ چیزی در دیتابیس ذخیره نکنید فقط کار با io و file عکس هایی که آپلود شده رو بدست بیارید.

چرا روش دوم رو توصیه نمی کنید.دلیلش چیه ؟ مگه اینطوری بانک کم حجم تر نمیشه

aminmousavi
پنج شنبه 14 آبان 1394, 13:22 عصر
چرا اما حجم زیادی رو به خودش تخصیص نمیده . دلیلش هم اینکه مثلا اگر شما بخواید به ازای هر عکس یک متن یا یک لینک بزارید تو این روش که فقط توی فولدر ریختید دستتون بستست .

alireza_s_84
پنج شنبه 14 آبان 1394, 14:14 عصر
سلام
چطور میتونم برای یک نمونه از آبحکت بیش از یک نمونه عکس تو بانک بذارم.
ینی متلا برای یه مطلب به خصوص آلبوم عکس درست کنم.در باره محدودیت یا عدم محدودیت تعداد عکس چی ؟

مثلا تو این سایت های فروش خودرو یه خودرو یک عکس داره یکی 10 تا یا بیشتر.
میخوام ببینم باید به ازای هر عکس یه رکورد تو بانک داشته باشم ! یا روش دیگه ای هست

شما اگه از SQL Server استفاده می کنید بهترین راه براتون استفاده از FileTable هست. با استفاده از FileTable شما عکس ها روی دیتابیس ذخیره می کنید ولی اینکار هیچ تاثیری در سرعت دیتابیس نداره چون با استفاده از FileStream در واقع شما مانند FileSystem با این فایلها رفتار می کنید.
اسکما جدول FileTable ثابت هست و شما باید یک جدول داشته باشید با 2 کلید که یکیش میشه شناسه محصول و دیگری StreamId که کلید شده به FileTable.
بهترین و اصولیترین راه ممکن همینه و فکر ذخیره کردن عکسها در پوشه ها رو از سرتون بیرون کنید چون با وجود FileTable هیچ دلیلی برای اینکار باقی نمیمونه.
موفق باشید