PDA

View Full Version : راهنمائی در مورد ساخت جدول مبلغ نسبت به سال



safa55
چهارشنبه 19 فروردین 1394, 20:48 عصر
سلام دوستان
من روی یک پروژه کار می کنم که فاکتور میده . و برای هر سال نسبت به قیمت آن سال فاکتور باید صادر بشه.
به نظرتون برای ثبت قیمت هر سال چکار باید بکنم.
من حدود 400 رکورد دارم که هر یک برای سال اول یک قیمتی دارد، و باید برای سال بعد قیمت همان 400 رکورد برای سال جدید تعیین شود و ....
روش من این است که به طور پیش فرض جدول ام 15 فیلد داشته باشد که شامل کد رکورد(مثلا کالا) ، مبلغ اول ، مبلغ دوم و.....مبلغ اخر
مثلا در سال اول مبلغ اول را پر کنم و سال بعد مبلغ دو و.....
و زمانی هم که فاکتور می گیرم مثلا سال 1394 بود آن را منهای 1393 کنم تا بشه یک و برای آن مبلغ اول را درنظر بگیرم و همینطوری تا سالهای بعد .
برای پر کردن مبلغ ها هم هر سال مبلغ سال قبل + چند درصد آن
در این روش دیگر رکورد ها زیاد نمی شند. و ظاهرا روش خوبی است.
خواستم بدونم آیا روش بهتری هم است؟

مهدی نان شکری
پنج شنبه 20 فروردین 1394, 00:20 صبح
با سلام
در نظر داشته باشید که در طراحی دیتابیس به تعداد رکورد ها توجه نمی کنند.
البته ممکن است دانستن حجم پایگاه داده در مرحله تعریف معماری اولیه برای انتخاب معماری نرم افزار که نوع پایگاه داده(اوراکل و MSSQL) جزئی از آن است مهم باشد ولی در نظر داشته باشید که بعد از انتخاب معماری و در مرجله طراحی تا حد امکان از فرآیند Denormal کردن بدون داشتن ایده درست دوری نمایید و بر اساس استانداردهای متداول پیش بروید.

به طور کلی در هنگام طراحی هر تحویل شدنی که پایه مهندسی دارد (نرم افزار، خط تولید شکلات و حتی موتور لوکوموتیو) هزینه نگهداری آن محاسبه می شود تا هزینه نگهداری آن مقرون به صرفه باشد.
برای بهتر شدن دید شما به راهکارتان بیندیشید به طوری که شما 10 عدد ستون برای یک جدول قرار داده اید تا قیمت های 1393 تا 1404 را نگهداری نماید و برای آن هم فرمول سال فاکتور منهای سال 1393 را تعریف کردید که بر اساس آن قیمت محاسبه شود.
حال در هنگام Publish برنامه کارفرما تصمیم میگیرد سال شروع را سال 1390 قرار دهد حال دیگر برای رسیدن به ستون قیمت عدد منها عوض شده است و برنامه می بایست اصلاح و در صورت نیاز کامپایل شود و یا فرض کنید 10 سال پیش بینی شما سپری شد و وارد سال 1405 شدیم باز نرم افزار شما باید اصلاح شود.
در پایگاه داده، داده ها به صورت واحد های 8 کیلوبایتی به نام Page ذخیره می شوند. وقتی در یک جدول تعداد فیلد ها کمتر باشد این به معنای این است که در یک Page تعداد بیشتری رکورد می تواند قرار گیرد و این یعنی هزینه IO پایین.
به بیان دیگر وقتی در یک Table تعداد زیادی فیلد مشاهده شد در این صورت چراغ قرمز عدم نرمال سازی صحیح برای آن جدول روشن می شود. پس طراحیتان را نرمال نمایید.

البته موارد مطرح شده فقط پیشنهاد می باشد زیاد جدی نگیرید
موفق باشید