PDA

View Full Version : پشنهاد درباره طراحی پایگاه داده به بهترین شکل ممکن



abdoullah.aberi
دوشنبه 29 دی 1393, 19:18 عصر
سلام و خسته نباشین دوستان برنامه نویس امیدوارم خوب و سلامت باشین
به نظر شما برای طراحی پابگاه داده برای تخصیص وام به مشتری به بهترین شکل باید چیکار کنم
کل داستان به این شکله
پرسنل دارای مثلا شماره - نام - نام خانوادگی - تلفن - ادرس
2 - دو وام داریم یکی یک ساله - یکی سه ساله
حالا به نظر شما چطوری یه جدول داشته باشم که بتونم وام ها و پرداختی وام هر شخص رو داشته باشم که بعدا بتونم مثلا پرداختی های شخص رو ببینم که چه ماهی پرداخت داشته و مثلا n ماه دیگه باقی مونده

ممنون از شما پیروز و سربلند باشید

tiphooo
سه شنبه 30 دی 1393, 00:25 صبح
شما نیاز به یک جدول برای پرسنل دارید که به ازاء هر پرسنل یک فیلد ID از نوع AutoInc داشته باشید و سایر فیلدهای اطلاعاتی را نیز با توجه به نیاز تعریف کنید
یک جدول برای انواع وامها (الان دوتاست، مممکن است در اینده بیشتر شود)شامل کد وام و عنوان وام
یک جدول برای اختصاص وام به یک شخص شامل ID پرسنل ، کد وام ، مبلغ کل وام ، مبلغ قسط اول ، مبلغ سایر افساط ، تاریخ شروع وام ، وضعیت وام (فعال ، متوقف ، تسویه و ...) که در نهایت برای هر ردیف این جدول هم یک ID از نوع AutoInc تولید میشود
یک جدول برای کسور اقساط که شامل ID جدول اختصاص وام و مبلغ کسر شده و سال و ماه کسر میباشد
هر گونه خروجی بخواهید میتوانید از جدول آخر با ترکیبی با سایر جداول بگیرید
مثلا برای مانده وام جمع پرداختی کل موجود در جدول اخر را از اصل مبلغ وام کسر کنید مانده وام را خواهید داشت و خود جمع پرداختی نیز پرداخت شده تا کنون میباشد و از طرفی با این جدول ریز اقساط پرداختی را نیز خواهد داشت (فراموش نکنید که اقساط همیشه یکسان نیست و ممکن است کسی سه قسط را تجمیع کرده و در یک ماه پرداخت کند و یا بخشی از یک قسط را در ماه پرداخت کند برای همین مبلغ کسر شده در این جدول اجباری است که پیشفرض میزان قسط بعلاوه میزان بدهی است و ممکن است کاربر بخواهد مبلغ ان را به صورت دستی تغییر بدهد)

abdoullah.aberi
سه شنبه 30 دی 1393, 17:36 عصر
سلام ممنون از جوابتون من میخواستم خروجی بگیرم از ماه هایی که قسط پرداخت شده و ماه هایی که قسط هنوز پرداخت نشده یعنی لیستی از ماه های پرداخت شده و پرداخت نشده با این جور سناریویی که شما فرمودید میشه ماه های پرداخت شده رو مشاهده کرد ولی ماه های پرداخت نشده رو نمیشه دید چطوری بتونم ماه های پرداخت نشده رو ببینم ؟؟؟

ممنون از شما

tiphooo
چهارشنبه 01 بهمن 1393, 16:10 عصر
با توجه به اینکه سال و ماه شروع کسر وام از روی تاریخ شروع وام قابل استخراج است
و سال و ماه دریافت گزارش نیز مشخص است میتوانید با یک حلقه و یا CURSOR اسکریپتی بنویسید که به ازاء سال و ماهی که پرداخت انجام شده یک رکورد شامل سال پرداخت ، ماه پرداخت ، و مبلغ پرداختی و برای ماههای که پرداخت انجام نشده سال پرداخت ، ماه پرداخت و مبلغ صفر را برگرداند و نتیجه همه اینها را با هم UNION کنید
و یک راه حل بد این است که یک جدول دیگر ایجاد کنید که فقط شامل دو فیلد سال و ماه باشد و تمامی سال و ماههایی که قرار است پرداخت در ان انجام شود از ابتدا درج شود مثلا از سال شروع اولین وام تا سال 1400... که درج اطلاعات ان هم با یک حلقه کار ساده ای است
سپس این جدول را بر اساس سال و ماه شروع وام با جدول پرداختها JOIN بزنید و هر جا برای طرف دوم NULL برگرداند یعنی پرداخت انجام نشده
در این حالت دوم که پیشنهاد نمیشود (به دلیل افزونگی اطلاعات) دو مزیت دارد
1) سرعت واکشی یهتر است
2) برای ماههای که اصلا قرار نیست از کسی وام کسر شود رکوردی برنمیگرداند (برخی از صندوقها و یا بانکها مثلا در یک ماه یا دو ماه از سال معمولا ماه اخر سال از کسی قسط کسر نمیکنند)