ورود

View Full Version : تحلیل و طراحی قسمت بایگانی یک نرم افزار



maktab
دوشنبه 27 آذر 1391, 21:46 عصر
سلام.
یک نرم افزار متوسط را در نظر بگیرید. حال دوست دارم نظرات دوستان را در مورد سیستم بایگانی آن بدونم.

معمولا سیستم بایگانی اکثر سازمان ها به این شکل است: بایگانی هر چند ماه و بایگانی سالانه، که اطلاعات بایگانی سالانه به ندرت مورد استفاده قرار میگیرند و نیاز نیست همیشه در نرم افزار فراخوانی شوند مگر اینکه مورد نیاز باشند.

برای بایگانی ماهیانه (آرشیو): خب این روش که سادست، از طریق برنامه نویسی و ایندکس گذاری بر روی فیلد تاریخ میتوان اطلاعات را به نسبت آرشیو مورد نظر نمایش داده و در صورت نیاز backup بگیریم.

برای بایگانی سالانه: چون اطلاعات این قسمت به ندرت مورد استفاده قرار میگیرند به نظر من بهتر است اطلاعات آنها از جدول اصلی حذف شده و در یک بانک دیگر (بایگانی) قرار گیرند. حالا دیتابیس بایگانی یکی باشد یا برای هر سال یک دیتابیس ساخته شود؟ اگر یکی باشد سرعت فراخوانی مجدد بالا میرود ولی خب خیلی ها دوست دارند سالانه بایگانی جدا داشته باشند یعنی بتونند یک فایل بعنوان بایگانی سال 90 یکی دیگه 91 و... داشته باشند همچنین درصورتی که جدا باشند اگر چندسال از نرم افزار بگذرد با توجه به بالا رفتن حجم اطلاعات به نظر من روش آخر (چند دیتابیس بایگانی) بهتر باشد.

به هر حال، بهترین روش استفاده از تجربه دوستان است که چنین نرم افزارهایی را طراحی کردند. :خجالت:
اگر ممکنه بفرمایید چه روشهایی بهتر است؟ تا سوالات بعدی برای پیاده سازی را بپرسم (مطمئنا سوالات خیلی از دوستان دیگر است)

setareh masompoor
سه شنبه 19 دی 1391, 09:28 صبح
سلام
منم میخوام همین کار رو بکنم یعنی برای هر سال یه دیتا بیس داشته باشم؛چجوری باید این کار رو کنم؟؟؟
یعنی بیام یه back up بگیرم بعد تک تک جدول ها رو با دستور delete خالی کنم؟؟؟140 جدول رو که نمیشه اینکا رو کرد؟؟؟؟؟
چی کار کنم؟؟؟؟؟

damanpak
سه شنبه 19 دی 1391, 19:47 عصر
سلام به شما عزیزان
اول دقت کنید که ایجاددیتابیس واسه اینکه میخواین بایگانی سالهای مختلف رو نگه داری کنید مشکل خاصی بوجود نمیاره اما از لحاظ استاندارد های طراحی پایگاه داده کار درستی نیست.در واقع شما داری یک بک آپ کامل از دیتابیست میگیری اما به روش غیر اصولی.
پیشنهاد میکنم این کار رو انجام بدین:
بار اول که بانکتون اطلاعاتی ثبت نشده یک بک آپ بگیرید(پیشنهاد میشه بک آپ گیریاتون همیشه بصورت Diffrential باشه) بعد سر سال که شد از اطلاعات موجود که توی بانک جود داره یک بک آپ بگیرید و بک آپ خالی رو دوباره فراخوانی کیند،من خودم از همین روز استفاده میکنم
اینطوری اولا واسه هرسال یک فایل دارین که بایگانی کل سال قبل رو داره از طرفی بک آپ خالی رو دوباره بدون هیچگونه delete کردن اطلاعات فقط با یک فراخوانی بانک رو مثل روز اول تحویلتون میده(که دقت کنید باید فایل Log رو هم در نظر بگیرید
موفق باشید!!!!!!!!!!!!!!دامن پاک

h_r_ibm
سه شنبه 19 دی 1391, 21:53 عصر
ب سلام
شما بايد يه ديتا بيس پايه شامل اطلاعاتي است كه معمولا ثابته طراحي كنيد و براي هر سال هم يك ديتابيس جدا و رابطه بين اينها فقط يك dbo بيشتر مي خواد
براي انتهاي سال هم شما مي توانيد به اجراي يك اسكريپت كل جداول ديتابيس سال جديد را ايجاد نماييد
موفق باشيد

baktash.n81@gmail.com
یک شنبه 24 دی 1391, 17:40 عصر
سلام ... دوست عزیز
تا اونجایی که من اطلاع دارم مایکروسافت هیچوقت این روش رو به عنوان یکی از روشهای موجود معرفی و پیشنهاد نکرده ... اما در عوض روش های دیگه مثل file group و Partitioning رو در SQL Server قرارداده تا مشکلات اینجوری رفع بشند.