PDA

View Full Version : درخواست راهنمایی در تحلیل بخشی از نرم افزار



maktab
چهارشنبه 02 فروردین 1391, 15:42 عصر
من دارم یک برنامه بایگانی یک سازمان را تحلیل میکنم بعدش هم میخوام با سی شارپ کدنویسیش کنم. حالا چندتا سوال دارم:
این سازمان هر سال تمام اطلاعات خودش را بایگانی میکنه. برای همین میخواد اطلاعات موجود در نرم افزار را هم بایگانی کنه من این کار را میتونم توی نرم افزار انجام بدم. برای این کار فقط اطلاعات سالی که هستیم را میخونم. حالا این کار درسته یا اینکه مثلا برای نامه های این سازمان وقتی سال تمام میشه برنامه بصورت خودکار یک جدول برای نامه های سازمان شبیه جدول خودش، توی دیتابیس درست کنه و اطلاعات سال گذشته را توش بریزم و اطلاعات قدیمی را از جدول اصلی پاک کنم. این کار باعث میشه سرعت برنامه یکم بالا بره درسته؟ اصلا این کار توی چنین برنامه هایی انجام می شه یا از همان روش اولی استفاده میشه؟

محسن شامحمدی
چهارشنبه 02 فروردین 1391, 21:08 عصر
این سازمان هر سال تمام اطلاعات خودش را بایگانی میکنه
دو راه دارید:

فقط سطرهایی از جدول که مربوط به همین سال هستند رو Select کنید.
یک فیلد می ذاری توی جدول به نام Archive که هر موقعی خواستی پرونده ای رو آرشیو کنی اون فیلد رو مقدار True می دی.

maktab
چهارشنبه 02 فروردین 1391, 22:23 عصر
دو راه دارید:


فقط سطرهایی از جدول که مربوط به همین سال هستند رو Select کنید.
یک فیلد می ذاری توی جدول به نام Archive که هر موقعی خواستی پرونده ای رو آرشیو کنی اون فیلد رو مقدار True می دی.



بله این روش ها را میدونم. ولی اگر دقت کنید من میخوام نظر دوستان را در مورد برداشتن اطلاعات و آرشیو کردن آنها توی یه جدول دیگه بدونم. کارهایی که شما میگید را من در برنامه خودم انجام میدم ولی توی این سازمان خیلی خیلی کم پیش میاد که به اطلاعات سال های گذشته نیازه دسترسی داشته باشند و بیشتر عملیات بر روی اطلاعات آن ساله. حالا اگر قراره اطلاعات امسال و سالهای گذشته توی یک جدول باشه برای هر بار جستجو و بقیه عملیات باید توی تمام اطلاعات گشت. در صورتی که خیلی از این اطلاعات بدون استفاده اند و بیخودی سرعت را پایین میارند.
حالا جدا کردن اطلاعات و قرار دادن توی یه جدول دیگه مشکلاتی را ایجاد نمیکنه؟ مثلا ممکنه دیتابیس ما 20 تا جدول داشته باشه و از این جدول ها ممکنه هر سال 15 تای آنها آرشیو بشند. حالا پس از گذشت 10 سال 170 تا جدول خواهیم داشت! که بعد از گذشت چندین سال خیلی بیشتر میشه. این کار درسته؟ یا روش مناسبتری هست؟

aslan
پنج شنبه 03 فروردین 1391, 00:15 صبح
سلام

یک راه حل با توجه به شرایطی که اعلام کردین میتونه این باشه که یک دیتابیس برای سال جاری داشته باشین و یک دیتابیس دیگه برای سالهای قبل (کل سالهای قبل فقط یک دیتابیس - مثلا بعنوان دیتابیس سنوات قبل) با فیلد جداکننده برای سالهای مورد نظر - که به این ترتیب در پایان هر سال محتویات دیتابیس جاری را به سنوات اضافه کنین و .......

maktab
پنج شنبه 03 فروردین 1391, 11:30 صبح
سلام

یک راه حل با توجه به شرایطی که اعلام کردین میتونه این باشه که یک دیتابیس برای سال جاری داشته باشین و یک دیتابیس دیگه برای سالهای قبل (کل سالهای قبل فقط یک دیتابیس - مثلا بعنوان دیتابیس سنوات قبل) با فیلد جداکننده برای سالهای مورد نظر - که به این ترتیب در پایان هر سال محتویات دیتابیس جاری را به سنوات اضافه کنین و .......

سلام. اگر توی دیتابیس بایگانی، برای هر سال جدول ها را جدا درست کنم چطور؟ مثلا هر وقت سال تمام میشه جدول ها درست میشند و اطلاعات توی آن ریخته میشند. این طوری تعداد رکوردها توی جدول ها کم میشند ولی تعداد جدول ها زیاد میشند. کدام به صرفه تره؟ راستی با توجه به روشی که من میگم یا روشی که شما گفتید بعدا به مشکل بر نمیخورم؟ (تداخل اطلاعات). اگر میشه کمی در مورد نحوه استفادش و فراخوانی های اطلاعات بصورت کلی توضیح بدید.
ممنون

aslan
پنج شنبه 03 فروردین 1391, 15:15 عصر
سلام

به نظر من و با توجه به شرایطی که اعلام شده هرچه تعداد جداول کمتر باشه نگهداری و..... آن راحتتره و در ضمن در صورت نیاز - پیاده سازی گزارشات مربوط به سنوات ( بخصوص برای گزارش بیش از یک سال ) در روش پیشنهادی من سهل تره .

بهر حال در صورتیکه سناریوی دیگه ای مدنظر نباشه :
با توجه به اینکه نیاز به دسترسی به اطلاعات سالهای قبل کم میباشد
به نظر من
تعداد کم جداول با رکوردهای زیاد
به تعداد زیاد جداول با رکوردهای کم
ارجحیت دارد
مگر اینکه سایر پارامترهای موجود این ارجحیت را از بین ببرد و .......

maktab
جمعه 04 فروردین 1391, 11:31 صبح
این سوال هنوز برای من وجود داره، که خیلی از سازمان هایی که سیستم های بایگانی، اداری، اتوماسیون و... دارند تقریبا چنین سناریوای دارند و کمتر پیش میاد به اطلاعات سال های گذشته نیاز داشته باشند و تمام اطلاعات را ماهیانه یا سالیانه بایگانی میکنند.
حالا دوستانی که چنین نرم افزارهایی برای این سازمان ها مینویسند از چنین روشی استفاده میکنند یا اینکه تمام اطلاعات را در یک دیتابیس قرار داده و فقط اطلاعات مورد نیاز آن سال را در برنامه فراخوانی میکنند.