PDA

View Full Version : سوال: اتصال به پایگاه داده های نامحدود بصورت پویا



solook
شنبه 25 آبان 1387, 10:10 صبح
با سلام

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

حال چطوری باید کد بنویسم که برنامه خودبخود متصل بشه به هر فایل دیتابیسی که در پوشه Books قرار گرفته
گاهی ممکنه کاربر 100 تا کتاب اضافه که اینها باید بصورت خودکار متصل بشه و در لیست کتابخانه بیاد

چنین چیزی اول ممکنه هست ؟اگه هست روشش چطوریه؟

AlirezaBahredar
شنبه 25 آبان 1387, 10:30 صبح
چنین چیزی اول ممکنه هست ؟اگه هست روشش چطوریه؟
با سلام...
از ممکن بودن امکان پذیراست.اما هیچ منطقی را نمی توان برای این کار قائل شد.
کار شما دقیقا شبیه این مسئله است که برای هر خودرو یک جاده بکشید.بنظر شما این منطقیست؟
موفق باشید.

solook
شنبه 25 آبان 1387, 12:02 عصر
خب شما برای افزودن یک کتاب مثلا چه راهی را پیشنهاد میدهید؟

AlirezaBahredar
شنبه 25 آبان 1387, 12:08 عصر
دوست عزیز...
سئوال خودتون رو کامل و واضح (در حدی که یک نفر غیر از خودتان بفهمد دقیقا منظور شما چیست) مطرح کنید تا بقیه دوستان با شما "همفکری" کنند نه اینکه برای شما کد آماده بنویسند.
موفق باشید.

Hamid_PaK
شنبه 25 آبان 1387, 20:24 عصر
برای انجام چنین کاری خیلی وقتها تنها با استفاده از یک فیلد اضافی همانند BookID در جدولی که یک اطلاعات کتابها نیازمند است کافیست که برای هر کتاب تنها یک Index ساخته شود که اطلاعات مورد نظر جهت جستجو کتاب مورد نظر از کتابهای دیگر متمایز شود قابل حل است.

یا حق ...

solook
یک شنبه 26 آبان 1387, 05:24 صبح
برای انجام چنین کاری خیلی وقتها تنها با استفاده از یک فیلد اضافی همانند BookID در جدولی که یک اطلاعات کتابها نیازمند است کافیست که برای هر کتاب تنها یک Index ساخته شود که اطلاعات مورد نظر جهت جستجو کتاب مورد نظر از کتابهای دیگر متمایز شود قابل حل است.

یا حق ...

منظورتان اینست که همه کتابها را در یک دیتا بیس قرار بدیم و مشخصات هر کتابی را در یک فیلد قرار بدهیم ؟

zman123456
یک شنبه 26 آبان 1387, 11:07 صبح
عزیز شما چقدر با طراحی بانک های اطلاعاتی آشنا هستید؟
با مهندسی نرم افزار آشنا هستید؟
اگه جواب منفیست بگید تا کامل توضیح داده بشه.

solook
یک شنبه 26 آبان 1387, 20:53 عصر
خب بهتره بیشتر توضیح بدم

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

این روش تابحال جواب داده اما فکر میکنم روش های بهتری هم هست که من بلد نیستم (البته بگم من تخصصم برنامه نویسی نیست و هرچی یاد گرفتم با پرس و جو بوده )
مثلا چندتا عیبی که داره :

سرعتش الان خیلی خوبه ولی مثلا اگه زمانی شد مثلا هزار جلد کتاب بهش اضافه شده یقینا خیلی افت خواهد داشت

دوم اینکه در برنامه های کتابخانه برا جستجو غالبا یک تیک هست برای انتخاب کتابها برای جستجو که فعلا این برنامه فقط قابلیت جستجو در کل کتابها رو داره و نمیشه مثلا چند کتاب و محدود خاصی رو انتخاب کرد

سوم .امکان حذف یک کتاب خاص هم به این صورت نیست یا خیلی مکافات داره..

حالا منتظر نظر دوستانم

merced
دوشنبه 27 آبان 1387, 09:31 صبح
شما ميتوني يک ديتابيس داشته باشي و هر وقت لازم شد (کاربر خواست) اون رو از يه ديتابيس ديگه به روز کني.
ديتابيس اصلي احتمالاً جدولي براي اعضا , کتاب و امانت داره
کافيه به ديتابيس دوم کانکت و جدول مورد نظر رو باز کني و ضمن پيمايش اون رکودها رو به جدول کتابت توي ديتابيس اصلي اضافه کني (حالا شرايطي هم براي تکراري نبودنش درنظر بگير)

سرعت : اولاً جدولت رو ايندکس کن و ثانياً لازم نيست هميشه همه جدول رو لود کني.
جستجو: بايد از Query استفاده کني و دستورات SQL بلد باشي


Select * from table1 where field1 = 'df' and field2 = 'dff' and ...

zman123456
دوشنبه 27 آبان 1387, 09:55 صبح
این کار فعلی شما اصولی تر هست تا این کاری که به ذهنتان رسیده.
هر مشکلی که فکر میکنید نرم افزارتون داره را بنویسید دوستان کمکتون میکنن تا رفعش کنید.

امید امرایی
دوشنبه 27 آبان 1387, 10:15 صبح
با سلام

اينطور كه پيداست شما آشنايي چنداني با طراحي پايگاه داده نداريد. نمونه هاي متعددي از نحوه طراحي پايگاه داده در اينترنت وجود داره كه مي تونن الگوهاي خوبي براي شما باشند.
http://weblogs.asp.net/scottgu/archive/2006/07/12/Tip_2F00_Trick_3A00_-Online-Database-Schema-Samples-Library.aspx

فكر مي كنم يك راهكار خوب اين باشه كه اين نمونه ها رو مطالعه كنيد. بخصوص در مورد طراحي پايگاه داده يك كتابخانه كه تعدد و چند شكلي بودن اطلاعات مي طلبه كه زمان بيشتري رو صرف طراحي ديتابيس كنيد.