PDA

View Full Version : سوال: تعداد عکس های مختلف برای هر ورودی



b3hz4d
سه شنبه 05 بهمن 1389, 09:11 صبح
با سلام خدمت دوستان.من یه برنامه دارم مینویسم که از هر ورودی که به سیستم اضافه میشه از یک تا n تعداد عکس میتونه داشته باشه که باید در دیتابیس ذخیره بشه.حالا سوالی که دارم اینه که بهینه ترین حالت برای این کار چیه ؟ تعداد column ها رو منطقی نیست که زیاد در نظر بگیریم.پس اگه بخوایم همه رو یک جا قرار بدیم به چه شکلی از هم جداشون کنم ؟ در کل بهترین حالت که هم در هنگام واکشی اطلاعات افت سرعت نباشه هم حجم دیتابیس الکی زیاد نشه چه حالتی هست ؟
ممنون.

ricky22
سه شنبه 05 بهمن 1389, 10:24 صبح
اگر چه یکم سوالتون گنگ بود اما عکس ها را در هارد ذخیره کنید و ادرس ان را در دیتابیس ذخیره کنید.

b3hz4d
سه شنبه 05 بهمن 1389, 10:39 صبح
سعی کردم واضح بپرسم سوالم رو که.ببینید مثلا نفر اول ممکنه 3 تا عکس داشته باشه، نفر دوم 5 تا عکس،نفر دهم 4 تا عکس.حتما هم میخوام تو دیتابیس ذخیره بشه.اگه بخوایم مثلا هر 10 تا عکس یک نفر تو یه column ذخیره بشه چیکار باید بکنم.مثلا یه column برای عکس باشه همه عکس های شخص اونجا باشه.چجوری عکس هارو با هم اونجا قرار بدم که قاطی نشن.
اگه بازم نامفهوم بود بگین یجور دیگه بگم.ممنونم.

ricky22
سه شنبه 05 بهمن 1389, 11:16 صبح
دوست عزیز
شما باید 3 تا ستون داشته باشید در ساده ترین حالت
ستون 1 ID جدول(PK)
ستون 2 ID شخص مورد نظر(FK)
ستون 3 هم عکس مذکور.
خب حالا هر سطر حاوی یک عکس هست.
و هر نفر می تونه n تا عکس داشته باشه. و بر اساس ID نفر می تونی پرس و جو کنی.
موفق باشید.

b3hz4d
سه شنبه 05 بهمن 1389, 11:38 صبح
ممنون.ولی اینجوری که شما میگین هر کاربر اگه مثلا 10 تا عکس داشته باشه 10 تا row باید واسش درست شه ؟ اگه از 2 تا جدول استفاده کنیم چطوره ؟ سرعت خیلی پایین میاد ؟ مثلا جدول شماره 1 اینجوری باشه که به هر شخص یه ID نسبت بده بعد تو جدول شماره ی 2 هر ID هر چند تا row که بخواد بهش اختصاص داده بشه و تو هر row هم یه عکس بتونه قرار بده.اینجوری فکر کنم واسه تغییر دادن عکس ها در آینده هم بهتر باشه.نه ؟ فقط سرعت خیلی پایین نمیاد که ؟ شما منظورتون همین حالت بود ؟
بازم ممنون.

ricky22
سه شنبه 05 بهمن 1389, 12:14 عصر
دوست عزیز منم منظورم همین حالت بود .
اگر دقت کنید جلوی ID نوشتم FK .
توصیه : اگر حجم عکس ها کمتر از 300 KB هست در بانک ذخیره کنید و الا در هارد ذخیره کنید (برای سرعت و Performance).
در حالتی که من بالا گفتم فرض کردم یک Table داریم که اطلاعات افراد در آن ذخیره شده و ستون دوم PK آن جدول است.

pirmard
سه شنبه 05 بهمن 1389, 13:41 عصر
ممنون.ولی اینجوری که شما میگین هر کاربر اگه مثلا 10 تا عکس داشته باشه 10 تا row باید واسش درست شه ؟ اگه از 2 تا جدول استفاده کنیم چطوره ؟ سرعت خیلی پایین میاد ؟ مثلا جدول شماره 1 اینجوری باشه که به هر شخص یه ID نسبت بده بعد تو جدول شماره ی 2 هر ID هر چند تا row که بخواد بهش اختصاص داده بشه و تو هر row هم یه عکس بتونه قرار بده.اینجوری فکر کنم واسه تغییر دادن عکس ها در آینده هم بهتر باشه.نه ؟ فقط سرعت خیلی پایین نمیاد که ؟ شما منظورتون همین حالت بود ؟
بازم ممنون.


دو تا تیبل ایجاد کنید

تیبل اولی

ID ---- PERSON NAME


تیبل دومی

ID ----------- PICTURE

////////
که این دو تا تیبل از طریق اون آیدی به هم مرتبط میشن . مثلا فرد با نام حسن تو تیبل اولی آیدی 1 میگیره
حالا تو تیبل دومی هر رکوردی که آیدیش 1 باشه مربوط به حسن ه.
*****************

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

ricky22
سه شنبه 05 بهمن 1389, 16:11 عصر
روش اون دوستمون ریکی22 روش استانداردی نیست . چون شما اطلاعاتی رو که نیاز به ذخیره کردنشون ندارید مرتب ذخیره می کنید . یعنی اگه حسن صد تا عکس داشته باشه صد بار اسم حسن + آی دی حسن رو ذخیره می کنین که در واقع نود و نه بار اسمش اضافه ذخیره شده !
سلام دوست خوب.
ببینید روشی که من گفتم :
Table1
ID =1
Name=shaahin

Table2
ID=1
tbl1ID=1
pic=some data
----
خب این روشی بود که من گفتم و 100 بار نام شاهین با 100 عکس تکرار نمیشه چون کلید خارجی داریم.

pirmard
چهارشنبه 06 بهمن 1389, 01:03 صبح
سلام دوست خوب.
ببینید روشی که من گفتم :
Table1
ID =1
Name=shaahin

Table2
ID=1
tbl1ID=1
pic=some data
----
خب این روشی بود که من گفتم و 100 بار نام شاهین با 100 عکس تکرار نمیشه چون کلید خارجی داریم.


عذرخواهم . من اشتباه متوجه پست شما شدم . ببخشید