PDA

View Full Version : نظرخواهی در مورد استفاده از Attach, Create, BackUp



Mohammad S
سه شنبه 02 تیر 1383, 00:28 صبح
با سلام خدمت دوستان عزیز
من از SQL Server Personal 2000 استفاده می کنم. در برنامه ام که مربوط به خرید و فروش و کمی هم حسابداری است در مورد سال مالی با مسایل و حالت های زیر روبرو هستم. می خواستم بدانم در هر مرحله از چه دستوراتی باید استفاده کرد؟
1) ابتدای سال مالی اول: اولین بار که از برنامه استفاده می شود (به نظر خودم باید از Create DataBase و Create Table و ... استفاده کنم. البته شاید Attach کردن دیتابیس با جداول خالی هم کارساز باشد)

2) ابتدای سال مالی بعد: محتوای بعضی از جدولها از سال قبل می آید و بعضی از جدولها کاملا خالی شده و بعضی دیگر بخشی از آنها (فاکتورهای قطعی شده) از جداول سال جدید حذف می شود (برای این حالت به نظر خودم باز هم از Attach استفاده شود البته بعد از حذف دیتابیس سال قبل، و سپس اطلاعات اضافی را یافته و حذف کنم)

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

4) در بعضی حالات لازم است که هم اطلاعات سال مالی جاری و هم مثلا سال قبل همزمان در اختیار باشد (در این حالت به نظرم خودم بهتر است یک دیتابیس موقت ایجاد شود و اطلاعات مالی سال قبل به آن Attach شود و پس از پایان کار هم دیتابیس مذکور پاک شود)

زبان برنامه نویسی: دلفی

با تشکر

منتظر نظرات سازنده شما دوستان عزیز هستم.
:kiss: :flower:

h_rezaei
سه شنبه 02 تیر 1383, 10:25 صبح
مشکل بسیار ی از کسانی که در وادی طراحی و پیاده سازی سیستم های حسابداری هستند ناشی از ذهنیت ها و پیش فرض های شیوه های رایج حسابداری است . قرار نیست هر رویداد حسابداری (مثلا یک ثبت خاص) در یک سیستم نرم افزاری معادل یک Entity باشد . من خیلی از تازه کارها را دیده ام که حتی برای دفاتر کل و معین و...یک table در دیتابیس در نظر می گیرند . علم کنونی حسابداری (که با گسترش سیستمهای نرم افزاری رو به زوال است ) صرفا برای ثبت اطلاعات بر روی برگه های کاغذ تدوین شده و در آن موقع هیچ قابلیتی از سیستم های مکانیزه ، کامپیوتری ،نرم افزاری ، دیتابیس های رابطه ای و....در تدوین این قوانین متصور نبوده. قوانین و فرمت های از پیش تعیین شده ای که ما به ازائ خارجی نداشته باشند حد اکثر یک گزارش ساده را در سیستم نرم افزاری تشکیل خواهند داد .
بنا براین برای سال مالی جدید نه احتیاجی به ایجاد یک دیتا بیس جدید و نه حتی ایجاد جدول جدید در دیتابیس موجود می باشد . هر رویداد مثبته حاوی تاریخ خاصی می باشد که با اندکی ظرافت در پیاده سازی می توان در تمام گزارش ها وضعیت قبل یا بعد از نهایی شدن و بسته شدن یک حساب خاص را لحاظ کرد . بدون آنکه تغییری در ساختار DB به وجود آید.

Mohammad S
سه شنبه 02 تیر 1383, 11:49 صبح
بنا براین برای سال مالی جدید نه احتیاجی به ایجاد یک دیتا بیس جدید و نه حتی ایجاد جدول جدید در دیتابیس موجود می باشد .
فرمایش شما قبول ولی این را هم بدانید که بعد از یک یا دو سال حجم دیتابیس زیاد خواهد شد و حتی قابل پشتیبان گیری هم نیست.
به هر حال ممنون از جوابتان ولی این فقط جواب سوال سوم بود که به نظر شما فقط از یک دیتابیس استفاده شود. بقیه مسایل چی؟ پشتیبان گیری، برگرداندن اطلاعات از دست رفته و ........

با تشکر 8-)

h_rezaei
سه شنبه 02 تیر 1383, 15:22 عصر
اگر بعد از یک سال حجم دیتابیس شما زیاد میشود می بایست از امکاناتی که SQL Server سایر تکنولژی های مایکروسافت در این خصوص در اختیارتان میگذارد استفاده کنید . (البته پلتفرمهای دیگر هم همین امکانات را دارند )


حتی قابل پشتیبان گیری هم نیست
چرا؟

بقیه مسایل چی؟ پشتیبان گیری، برگرداندن اطلاعات از دست رفته و ........
میتوانید از Transaction وMTS استفاده کنید . بد نیست در خصوص RAID هم مطالعاتی داشته باشید .

Mohammad S
سه شنبه 02 تیر 1383, 19:32 عصر
منظورم از قابل پشتیبان گیری نیست یعنی اینکه حجمش زیاد شده که شاید روی CD هم جا نشود (و البته برای بازیابی باید به روی هارد برگردد تا بتوان آن را توسط اس کیو ال سرور باز کرد)
در مورد بقیه مسایل هم خودم پیشنهاداتی دادم. به نظرم Transaction همان نظرات خودم باشد.

تا جایی که من متوجه شدم، تا زمانی که دستور BackUp اعمال نشده باشد دستور Restore کار نخواهد کرد یعنی اگر در یک دیتابیس جدید قصد Restore کردن فایلی داشته باشید که مثلا ماه قبل ایجاد شده (از دیتابیس سال قبل یا دیتابیس قبلی که روی کامپیوتر بوده و حالا به هر دلیلی پاک شده) غیر ممکن است. برای این حالت چه عملیاتی پیشنهاد می کنید؟
دستور پشتیبان گیری در این مورد چه باید باشد؟ :?:

sh
سه شنبه 02 تیر 1383, 23:23 عصر
مشکل بسیار ی از کسانی که در وادی طراحی و پیاده سازی سیستم های حسابداری هستند ناشی از ذهنیت ها و پیش فرض های شیوه های رایج حسابداری است

دوست عزیز نمیدونم در زمینه فن حسابداری و یا نوشتن برنامه های حسابداری چقدر تجربه داری ولی در بسیاری موارد ترجیحا باید هر سال مالی (یا تعداد معدودی) را در یک فایل دیتابیس قرار داد


اگر بعد از یک سال حجم دیتابیس شما زیاد میشود می بایست از امکاناتی که SQL Server سایر تکنولژی های مایکروسافت در این خصوص در اختیارتان میگذارد استفاده کنید

معتقدم نباید همه اطلاعات رو در بانک ذخیره کرد اصولا ذخیره فیلدهای محاسباتی درست نیست و باید بانک تا حد ممکن بهینه و کوچک و سریع باشد (بسته به نظر طراح نرم افزار)

آیا میتونی برای یه برنامه داد و ستد یه الکتریکی که یه پنتویم تری در پیتی داره و هنوز ویندوز رو نمیتونه تمیز نگه داره بری اس کیو ال سرور نصب کنی ؟
آیا به همین راحتی میشه برنامه ای را که بانک اطلاعاتیش اکسس 2003 هست سریع به اس کیو ال سرور منتقل کنیم یعنی اینقدر وقت اجازه میده که سریع به تمام مشتریان برسیم و برنامشونو آپدیت و در بعضی موارد باز نویسی کنیم؟
آیا در همه موارد متحمل شدن هزینه پشتیبانی اس کیو ال سرور مقرون به صرفه هست ؟

پس نتیجه میگیریم هر چیزی جای خودش رو داره جائی که پول بیشتری میدن و اطلاعاتشون هم مهمتره (نه 90 درصد برنامه های بازاری ایران بلکه ادارات بزرگ) مسلما" میشه یه کاری براشون کرد و اونم در نهایت تا چند سال مالی رو میشه توی یه فایل اس کیو ال سرور نگه داشت (بازم به دلیل محدودیت در حجم فایل) و راه کارهای دیگه ای داره

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

با تشکر

h_rezaei
چهارشنبه 03 تیر 1383, 12:28 عصر
معتقدم نباید همه اطلاعات رو در بانک ذخیره کرد اصولا ذخیره فیلدهای محاسباتی درست نیست و باید بانک تا حد ممکن بهینه و کوچک و سریع باشد
پس کجا باید ذخیره کرد ؟


آیا میتونی برای یه برنامه داد و ستد یه الکتریکی که یه پنتویم تری در پیتی داره و هنوز ویندوز رو ......
من نمی فهمم مگه نرم افزارهایی که شما develop میکنید تو چه مقیاسیه که طرف حاضر نیست به خاطرش سخت افزارش رو ارتقا بده؟؟

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