تور لحظه آخری
امروز : جمعه ، 9 شهریور 1403    احادیث و روایات:  پیامبر اکرم (ص):همه گناهان گذشته كسى كه از روى ايمان و براى رسيدن به ثواب الهى معتكف شود، آمرزي...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1813243501




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

یک سئوال در مورد ارتباط بین دو جدول در دو زمان متفاوت (در هنگام وجود و در هنگام عدم وجود)


واضح آرشیو وب فارسی:سایت ریسک: M-B-M11-08-2008, 01:17 PMدر یک نرم افزار کتابخانه زمانی که یک مشتری کتاب را با امانت می برد در دیتابیس DBRelation، IdCu کد مشتری و IdBo کد کتاب ثبت می شود و زمانی که لیست کتابهای امانت برده شده توسط او درخواست می شود، در این گزارش اسم مشتری و مشخصات کتابهای امانت برده شده توسط او نمایش داده می شود که این گزارش براساس ارتباط فیلد IdCu جدول DBCustomer با IdCu جدول DBRelation و IdBo جدول DBRelation با IdBo جدول DBBook برای نمایش اسم کتاب نمایش داده می شود. DBCustomer: IdCu, Fname, Lname, Tel, ... DBBook: IdBo, Name, Isbn, ... DBRelation IdCu, IdBo حالا: زمانی که کتابی که توسط این مشتری به امانت برده شده به هر دلیل از لیست خارج می شود (حذف مشخصات این کتاب از دیتابیس) چون گزارش براساس ارتباط بین این دو جدول پر می شود، دیگر در لیست چنین رکوردی نمایش داده نمی شود انگار که این مشتری اصلا چنین کتابی را به امانت نبرده است! راه حل این مشکل چیست؟ (سرنوشت فیلدهایی که از یک جد.ول حذف می شود در حالی که با جدول دیگر ارتباط دارند چه می شود) _H2_11-08-2008, 11:42 PMسلام حقیقتش درست متوجه نشدم چه گفتید. اگر مشکلتان حل نشد بهتر توضیح دهید؟ ولی من اگر بودم همچین دیتابیسی میساختم. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با سیستم فوق هم میتوان آمار کلی را حفظ کرد، و همه امار بردن و پس آوردن ها ثبت شود. اگر هم ToDate مقدارش NULL میتوان نتیجه گرفت، کتاب برگردانده نشده. میتوان اطلاعات آماری هم ارائه داد.مثلاً : هر عضو چند بار کتاب گرفته، در کل چه مدت کتاب ها دستش بوده، میانگین زمان خواندن هر کتاب برای هر عضو یا برای کل اعضا و.... M-B-M12-08-2008, 01:00 AMسلام در همین مثال که شما ارائه کردید سئوالم را مطرح می کنم: شما در دیتابیس Transfers Table دو Id ذخیره می کنید Id مشتری و Id کتاب و اطلاعات را توسط ارتباط همین فیلد ها با جدول های متناظر بازیابی می کنید حالا بعد از n سال یک کتاب از لیست خارج می شود (مشخصات کتاب از دیتابیس حذف می شود) و بعد از n+1 سال کاربر لیست کتابهای به امانت برده شده توسط فلان مشتری را درخواست می کند که این کار اطلاعات کاربر از جدول Members Table بازیابی شده و از جدول Transfers Table ، Id کتاب به امانت برده شده بازمی گردد و زمانی که به سراغ جدول Books table می رود تا اطلاعات کتاب را بازیابی کند این Id اکنون دیگر وجود ندارد و در نتیجه این رکورد بازیابی نمی شود! امیدوارم سئوالم را متوجه شده باشید. منتظر پاسخ شما هستم؟ _H2_12-08-2008, 01:19 AMسلام اون قسمت n و n+1 سوالتان خیلی دات نت بود! خوشم امد! اگر میخواهید پس از m سال از حذف کتاب از لیست، همچنان بتوانید نام و مشخصات کتاب را استخراج کنید، پس واضح است، شما به اطلاعات کتابها نیاز دارید. اصلاً سطر مربوط به کتاب را حذف نکنید، هیچ ایرادی هم ندارد، بهرحال primaryKey شما هم که قابل استفاده مجدد نیست. اگر هر سطر شما برای هر کتاب 100 بایت مصرف کتد، یک میلیون نسخه کتاب هم که حذف کنید (که امکان ندارد) میشود 100M اطلاعات اضافی در دیتابیس، که چون طبق گفته خودتان به انها شاید نیاز هم پیدا کنید، دیگر اضافه هم نیستند و وجودشان لازم است. یک فیلد bool در آن تعبیه کنید، که مشخص کند، کتاب موجود است یا دیگر موجود نیست. در زمان نمایش لیست کتابها و یا جستجوی عنوانی خاص، به راحتی میتوانید با مقدار این bool خروجی را ف-ی-ل-ت-ر کرده و فقط کتابهای موجود را نمایش دهید. در زمان حذف هم فقط مقدار آن را تغییر دهید. اگر در حجم عظیم کتاب با کاهش سرعت مواجه شدید، شاید اماکن دارد، بد نباشد روی فیلد bool هم یک index بگذارید!!! M-B-M12-08-2008, 10:09 AMخودم رو کشتم تا تونستم توضیح بدم ممنون از راهنماییتون سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 333]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


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