PDA

View Full Version : مشورت در ایجاد سال تحصیلی



ehsan-68
سه شنبه 28 آذر 1391, 13:00 عصر
سلام به دوستان ...

میخواستم نظرتونو راجب ایجاد سال تحصیلی جدید در نرم افزار بدونم ...

من خودم سه تا پیشنهاد دارم :
1 . ایجاد دیتابیس جدید با کد نویسی با نام سال جدید (1392)

2 . ایجاد تیبله ای جدید در همان دیتابیس قبلی

3 . ایجاد رکوردی برای مشخص شدن سال مثلا داخل رکورد (1392)

اما :

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

گزینه 2 هم نمیدونم .... شما بگید

گزینه 3 هم هرچقدر رکوردها زیاد بشه سرعت پرس و جو میاد پایین .ه فکر نکنم خوب باشه ...

ممنون میشم اگه راهنمایی بکنید ...

ehsan-68
سه شنبه 28 آذر 1391, 16:51 عصر
جدا کسی نیست یه پیشنهادی بده ... :افسرده:

amirmms
سه شنبه 28 آذر 1391, 18:16 عصر
من راه حل شماره 2 رو پیشنهاد میکنم
یه سرچی هم برات زدم بیا این دو پیج رو بگیر شاید به دردت بخوره البته مال اکسس هست
لینک 1 (http://social.msdn.microsoft.com/Forums/en/vbinterop/thread/502761ba-48b2-419c-a693-c3b80ba8bba9)
لینک 2 (http://www.codeguru.com/vb/gen/vb_database/microsoftaccess/article.php/c5149/Create-a-Microsoft-Access-Database-Using-ADOX-and-Visual-Basic-NET.htm)

rezaprogrammer
سه شنبه 28 آذر 1391, 18:31 عصر
این مسئله که شما گفتی درباره نوشتن یک برنامه حسابداری هم کاربرد داره. برنامه ای که میخایم بر پایه سال مالی ایجاد بشه. باید بحث کنیم ببینیم کدوم راه بهتره.
من خودم برای یک نرم افزار فروشگاهی از گزینه سوم استفاده کردم. ولی درمورد کاراییش نمی تونم اظهار نظری کنم چون هنوز نرم افزار تموم نشده و آزمون و خطا هم نشده

ehsan-68
سه شنبه 28 آذر 1391, 18:47 عصر
من راه حل شماره 2 رو پیشنهاد میکنم
یه سرچی هم برات زدم بیا این دو پیج رو بگیر شاید به دردت بخوره البته مال اکسس هست
لینک 1 (http://social.msdn.microsoft.com/Forums/en/vbinterop/thread/502761ba-48b2-419c-a693-c3b80ba8bba9)
لینک 2 (http://www.codeguru.com/vb/gen/vb_database/microsoftaccess/article.php/c5149/Create-a-Microsoft-Access-Database-Using-ADOX-and-Visual-Basic-NET.htm)

خوب اونوقت چجوری باید به نرم افزار بفهمونیم که از کدوم جدول استفاده کنه ... منظورم اینکه چجوری بفهمه جدول جدید ایجاد شده تا از اون استفاده بکنه ...

amirmms
سه شنبه 28 آذر 1391, 18:50 عصر
یه لیست از سال های مالی ایجاد میکنیم و از کاربر میخواهیم که از بین اونا یکی رو انتخاب کنه بعدش توی کل برنامه ها به جای fill کردی دیتاگرید با جدول جاری با یه if یا select case با یه جدول دیگه fill میکنم ، اگه با پارسیان کار کرده باشید همینجوری هست البته با دلفی
اما
یه مشکل :| ما که اسم جدول ها رو از قبل ندارم پس راه حل 3 به نظرم خوبه

ehsan-68
سه شنبه 28 آذر 1391, 20:28 عصر
خوب میتونیم برایه نام جدول یک کاری بکنیم اونم اینکه زمانیکه کاربر میخواد سال مالیرو تغییر بده نام سالو (مثلا کاربر انتخاب کرده 1392 ) در قسمتی که قراره نام جدول رو در شرط بنویسیم بذاریم ...
نمیدونم متوجه شدین یا نه ...

البته من الان دارم رویه گزینه 1 یه تغییراتی میدم اونم اینکه بیام قبلش کلیه جدولام و دیتابیسمو کامل کنم و زمانیکه کاربر سال تحصیلیه جدیدرو انتخاب میکنه از دیتابیس با نام جدید کپی بگیره و اون دیتابیسو به برنامه وصل کنه که فقط یه مشکل دارم که تایپیکشو زدم

اینجــــــــا (http://barnamenevis.org/showthread.php?374446-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%DA%A9%D9%84%D8%A7%D8%B3&p=1653898#post1653898)

دلیلشم اینکه من یک کلاس برایه ارتباط دیتابیسم دارم میخوام کاربر از زمانیکه سال رو انتخاب میکنه در خط زیر نام دیتا بیسو در کلاس تغییر بدم ...


Public strConnection As String = "data source=pc1\sqlexpress; initial catalog=Database1.mdf;integrated security=sspi;"

ehsan-68
سه شنبه 28 آذر 1391, 23:38 عصر
بله ....
:متفکر:

amirmms
سه شنبه 28 آذر 1391, 23:58 عصر
امتحان کن اگه اوکی میشه مه هورا ولی روی کاغذ که درسته

merlin425
چهارشنبه 29 آذر 1391, 01:17 صبح
شما میتونی یه جدول داشته باشی توش سالهای تحصیلی رو نگه داری کنی بعد هرجا که میخای مشخص کنی مال چه سال یا نیمسال تحصیلیه از اون جدول کلید خارجی بگیری مثلآ یه جدول داری واسه دروس اراعه شده این ترم توی این جدول یه فیلد داری واسه کد نیمسال یه جدول دیگم داری که توش نیمسال ها رو قرار دادی کد نیمسالی که میخای رو تو اون فیلد مینویسی هر وقت هم که بخوان سال جدید ایجاد کنن میان تو برنامه یه رکورد جدید به جدول سالهای تحصیلی اضافه میکنن

ehsan-68
چهارشنبه 29 آذر 1391, 09:24 صبح
شما میتونی یه جدول داشته باشی توش سالهای تحصیلی رو نگه داری کنی بعد هرجا که میخای مشخص کنی مال چه سال یا نیمسال تحصیلیه از اون جدول کلید خارجی بگیری مثلآ یه جدول داری واسه دروس اراعه شده این ترم توی این جدول یه فیلد داری واسه کد نیمسال یه جدول دیگم داری که توش نیمسال ها رو قرار دادی کد نیمسالی که میخای رو تو اون فیلد مینویسی هر وقت هم که بخوان سال جدید ایجاد کنن میان تو برنامه یه رکورد جدید به جدول سالهای تحصیلی اضافه میکنن

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

smchavoshi
چهارشنبه 29 آذر 1391, 09:30 صبح
سلام
به نظر من گزینه سوم بهتره من خودم تو چند تا پروژه حسابداری استفاده کردم راحت جواب میده
ضمنا sql یه امکانی داره که می تونی اطلاعات رو خوشه بندی کنی (clusterring)

ehsan-68
چهارشنبه 29 آذر 1391, 09:41 صبح
سلام
به نظر من گزینه سوم بهتره من خودم تو چند تا پروژه حسابداری استفاده کردم راحت جواب میده
ضمنا sql یه امکانی داره که می تونی اطلاعات رو خوشه بندی کنی (clusterring)

خوب این امکان خوشه بندی در sql express هم وجود داره ؟ چجوری با کد نویسی یا ویزاردی ...

و برایه انتقال از سال قبل به سال جدید چکار باید کرد در این حالت ؟

zarifcomputer
چهارشنبه 29 آذر 1391, 10:19 صبح
سلام به همه عزیزان
تمام راه حل هایی که دوستان فرمودند امکان پذیر هستند و هر کدوم هم برای هدفی بکار میروند.
برای رسیدن به بهترین پاسخ ابتدا باید هدف خودتونو در این پروژه به صورت شفاف مشخص کنید.
هدف برنامه ای که برای یک مدرسه یا آموزشگاه نوشته میشه با هدف یک برنامه حسابداری فرق های اساسی داره. پس شاید راه حل هایی که برای برنامه حسابداری مفید هست برای برنامه مدرسه مفید که هیچ بی فایده یا ممکنه حتی دست و پا گیر هم باشه.
فعالیت های حسابداری تقریبا ثابت هستند و مفاهیم و ساختار جداول آن ممکن است در طول سالها تغییر نداشته باشد. ولی در سیستم آموزشی ممکن است هر روز یک ایده داده شود و بخشی از سیستم فعلی را دستخوش تغییرات قابل توجهی کند و صد البته ممکن است این تغییرات برنامه نویس را مجبور کند تا علاوه بر دستکاری های عمده در کد نرم افزار ، در ساختار بانک اطلاعاتی پروژه نیز تغییراتی را اعمال کند. اگر آینده نگر هستید بهتر است دیتابیس هر سال تحصیلی را به صورت مستقل نگهداری کنید . زیرا ممکن است تغییرات دیتابیس در سال آینده آنقدر زیاد باشد که انجام این تغییرات بر روی ساختار قبلی باعث به هم ریختگی و خارج شدن از نرمال سازی گردد. ضمن اینکه پس از پایان سال تحصیلی ، کاربر نرم افزار اغلب اطلاعات سال قبل را آرشیو کرده و به ندرت سراغ آن میرود . زیرا قرار نیست در اطلاعات سال قبل تغییراتی انجام شود و بهتر آن است که این دیتابیس ها که مربوط به سال های قبل هستند فریز شوند و فقط دیتابیس سال جاری فعال و قابل ویرایش باشند. از این ها گذشته فرض کنید شما اطلاعات هر سال را به بانک اطلاعاتی فعلی اضافه کنید و مثلا هر سال فیلد و روکورد اضافه کنید و همه را در یک دیتابیس نگهداری کنید . حالا اگر به هر دلیلی این اطلاعات خراب شوند یا صدمه ببینند آنگاه شما به یکباره تمام اطلاعات را با هم از دست داده اید . ضمن اینکه حجم دیتابیس سال به سال بزرگتر شده و بک آپ های آن نیز بزرگتر خواهند شد.
البته نظر دوستان دیگر هم محترم است . این نظر بنده بود . تا چه قبول افتد و چه در نظر آید !!!

rezaprogrammer
چهارشنبه 29 آذر 1391, 10:33 صبح
میشه از دو دیتابیس استفاده کرد یکی به عنوان دیتابیس فعلی و دیگری برای نگهداری آرشیو. در هنگام بستن سال و انتقال به سال بعدی می تونیم اطلاعات رو به دیتابیس آرشیو منتقل کنیم.

ehsan-68
چهارشنبه 29 آذر 1391, 11:34 صبح
سلام به همه عزیزان
تمام راه حل هایی که دوستان فرمودند امکان پذیر هستند و هر کدوم هم برای هدفی بکار میروند.
برای رسیدن به بهترین پاسخ ابتدا باید هدف خودتونو در این پروژه به صورت شفاف مشخص کنید.
هدف برنامه ای که برای یک مدرسه یا آموزشگاه نوشته میشه با هدف یک برنامه حسابداری فرق های اساسی داره. پس شاید راه حل هایی که برای برنامه حسابداری مفید هست برای برنامه مدرسه مفید که هیچ بی فایده یا ممکنه حتی دست و پا گیر هم باشه.
فعالیت های حسابداری تقریبا ثابت هستند و مفاهیم و ساختار جداول آن ممکن است در طول سالها تغییر نداشته باشد. ولی در سیستم آموزشی ممکن است هر روز یک ایده داده شود و بخشی از سیستم فعلی را دستخوش تغییرات قابل توجهی کند و صد البته ممکن است این تغییرات برنامه نویس را مجبور کند تا علاوه بر دستکاری های عمده در کد نرم افزار ، در ساختار بانک اطلاعاتی پروژه نیز تغییراتی را اعمال کند. اگر آینده نگر هستید بهتر است دیتابیس هر سال تحصیلی را به صورت مستقل نگهداری کنید . زیرا ممکن است تغییرات دیتابیس در سال آینده آنقدر زیاد باشد که انجام این تغییرات بر روی ساختار قبلی باعث به هم ریختگی و خارج شدن از نرمال سازی گردد. ضمن اینکه پس از پایان سال تحصیلی ، کاربر نرم افزار اغلب اطلاعات سال قبل را آرشیو کرده و به ندرت سراغ آن میرود . زیرا قرار نیست در اطلاعات سال قبل تغییراتی انجام شود و بهتر آن است که این دیتابیس ها که مربوط به سال های قبل هستند فریز شوند و فقط دیتابیس سال جاری فعال و قابل ویرایش باشند. از این ها گذشته فرض کنید شما اطلاعات هر سال را به بانک اطلاعاتی فعلی اضافه کنید و مثلا هر سال فیلد و روکورد اضافه کنید و همه را در یک دیتابیس نگهداری کنید . حالا اگر به هر دلیلی این اطلاعات خراب شوند یا صدمه ببینند آنگاه شما به یکباره تمام اطلاعات را با هم از دست داده اید . ضمن اینکه حجم دیتابیس سال به سال بزرگتر شده و بک آپ های آن نیز بزرگتر خواهند شد.
البته نظر دوستان دیگر هم محترم است . این نظر بنده بود . تا چه قبول افتد و چه در نظر آید !!!

سلام به شما ...

پس نظر شما اینکه برایه هر سال تحصیلی یک دیتابیس ایجاد بکنیم ... که بنظر منم این بهتره ... به همین دلایلی که شما گفتین ...

گزینه 2 که باعث میشه اگه دیتابیس به هر دلیلی آسیب ببینه کل اطلاعات پاک بشه و بک آب گیری هم سخت میشه ...

و گزینه 3 که برایه هر سال یک فیل برایه مشخص کردن سال باشه باعث کندیه کوئری میشه ...

حالا برایه گزینه 1 من قبل از تحویل پروژه کل جدولایه مورد نیازو میسازم تا در زمان ایجاد سال تحصیلی از اون دیتا بیس کپی بگیره و به اون وصل بشه ... اما مشکل من اینکه چون برایه اتصالات دیتابیسم کلاس نوشتم چجوری میتونم به کاربر امکان تغییر نام دیتابیسو از داخل نرم افزار در کلاس رو بدم ؟ تا با انتخاب سال تحصیلی نام دیتا تغییر بکنه و اطلاعات اون خونده بشه در خط زیر ...


Public strConnection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DATABASE.MDF ;Integrated Security=True;User Instance=True"


من اومد یک تغییر کوچولو دادم و یک


Public namedata As String
Public strConnection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\" & namedata & " ;Integrated Security=True;User Instance=True"


ایجاد کردم ولی از داخل نرم افزار با اینکه گزینه میاد ولی قابل تغییر نیست ...

کجاش مشکل داره ؟

zarifcomputer
چهارشنبه 29 آذر 1391, 12:35 عصر
سلام به شما ...

پس نظر شما اینکه برایه هر سال تحصیلی یک دیتابیس ایجاد بکنیم ... که بنظر منم این بهتره ... به همین دلایلی که شما گفتین ...

گزینه 2 که باعث میشه اگه دیتابیس به هر دلیلی آسیب ببینه کل اطلاعات پاک بشه و بک آب گیری هم سخت میشه ...

و گزینه 3 که برایه هر سال یک فیل برایه مشخص کردن سال باشه باعث کندیه کوئری میشه ...

حالا برایه گزینه 1 من قبل از تحویل پروژه کل جدولایه مورد نیازو میسازم تا در زمان ایجاد سال تحصیلی از اون دیتا بیس کپی بگیره و به اون وصل بشه ... اما مشکل من اینکه چون برایه اتصالات دیتابیسم کلاس نوشتم چجوری میتونم به کاربر امکان تغییر نام دیتابیسو از داخل نرم افزار در کلاس رو بدم ؟ تا با انتخاب سال تحصیلی نام دیتا تغییر بکنه و اطلاعات اون خونده بشه در خط زیر ...


Public strConnection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DATABASE.MDF ;Integrated Security=True;User Instance=True"


من اومد یک تغییر کوچولو دادم و یک


Public namedata As String
Public strConnection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\" & namedata & " ;Integrated Security=True;User Instance=True"


ایجاد کردم ولی از داخل نرم افزار با اینکه گزینه میاد ولی قابل تغییر نیست ...

کجاش مشکل داره ؟
اینطوری نمیشه مشکل را حل کرد. چیزی که به نظر میرسه اینه که ConnectionString شما با تغییر سال تحصیلی باید تغییر کنه و مشکل شما اینه که تغییر نمیکنه.
و ظاهرا شما ConnectionString را طوری ساختید که نام دیتابیس به صورت یک پارامتر بهش اضافه بشه . این روش درسته ولی اینکه چطور دارید اجراش میکنید بستگی به دیباگ و Trace کردن پروژه داره و همینطوری نمیشه نظر دقیق داد.

ehsan-68
چهارشنبه 29 آذر 1391, 13:07 عصر
تونستم این کدو تغییر بدم و مشکلو حل کردم ...


Public Function database1(ByVal namedatabase As String)
strConnection = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\" & namedatabase & " ;Integrated Security=True;User Instance=True"
connection = New SqlConnection(strConnection)
Return False
End Function

ehsan-68
چهارشنبه 29 آذر 1391, 13:09 عصر
و در فرم به این شکل به کاربر اجازه تغییر دادم ...


rwd.database1(RadioButton3.Text)

merlin425
چهارشنبه 29 آذر 1391, 14:13 عصر
یعنی شما میگی برایه هر سال باز یه جدول درست کنم یا فیلد بذارم که مشخصه سال باشه ؟

نه من نمیگم واسه هر سال یه جدول درست کنی اخه این یعنی چی که مو قع استفاده از برنامه یه جدول به بانک یا یه دیتابیس جدید اضافه بشه من میگم یه جدول داشته باش که توش سالهای تحصیلی رو بریزی هر سال یک رکورد بعد جاهای دیگه که میخای مشخص کنی مال چه سالیه کد رکورد مورد نظر در جدول سالها رو قید کن مثلآ واسه دروس اراعه شده در ترم جاری در فیلد نیمسالش کد نیمسال اول 91 رو در جدول سالها قید کن

rezaprogrammer
چهارشنبه 29 آذر 1391, 16:46 عصر
من تو نرم افزار حسابداری نسخه فروشگاهی که دارم طراحی می کنم یک جدول به نام سال مالی دارم که خود سال به عنوان کلید اصلی معرفی شده که هنگامی که کاربر از بین سال مالی های موجود در لیست سال مالی خودش رو انتخاب کنه به عنوان پیش فرض در تمام متغیرهای مربوطه ثبت میشه و تمام دستورات شرطی برای بازیابی اطلاعات با لحاظ کردن فید سال مالی برای کاربر نمایش داده میشه

ehsan-68
چهارشنبه 29 آذر 1391, 22:06 عصر
خوب دوستانی که گفتن فیلد بذاریم برایه هر سال مالی ...

با افزایش اطلاعات با کاهش سرعت کوئری مواجه میشیم و پشتیبان گیری سخت و زمانبر میشه با این مشکل چکار کنیم ؟

rezaprogrammer
چهارشنبه 29 آذر 1391, 22:13 عصر
شما از SQL SERVER استفاده می کنی؟ فکر نمی کنم مشکلی ایجاد کنه. مگه نرم افزارت چقدر میخاد رکورد رو ثبت کنه؟ یعنی فکر می کنی خیلی زیاد بشه؟ مگه قراره چند نفر باهاش کار کنن؟

ehsan-68
چهارشنبه 29 آذر 1391, 23:46 عصر
با Sql Express ... آره ممکنه رویه شبکه داخلی و همچنین متصل به سایت بشه ...

مقدار ثبتشو نمیدونم ولی میدونم زیاد میشه حداقل به 40000 تا رکورد شایدم بیشتر برسه ...

و اینهم هست که اگه همه ی اطلاعاتو یکجا ثبت کنم مورد حفاظت اطلاعات از نظر نگهداریش هم هست ...

ehsan-68
چهارشنبه 29 آذر 1391, 23:54 عصر
ببینید من خودم قبلا در یک نرم افزار که نوشتم از روش یک رکورد برایه شناسه سال استفاده کردم و جواب گرفتم ...

ولی دنبال اینم که بتونم بایک شیوه جدید نرم افزارمو بنویسم یکجورایی تنوع پذیرم ... دلم نمیخواد همه نرم افزارام از یک الگوریتم خاص پیروی کنه ... ( بحث دیتابیسش )

الانم رویه گزینه 1 این تاپیک کار کردم و تقریبا دارم جواب میگیرم ...

در ضمن اینم بگم که نظر شما دوستان هم خیلی برام مهمه و در واقع میخوام بازدن این تاپیک دنبال شیوه هایه نو و جدید در امر برنامه نویسی باشم ...

چون دیدم بعضی برنامه نویسا فقط از یک الگوریتم استفاده میکنن و کپی و پیست میکنن ... که بنظر من باعث نمیشه من که دارم برنامه نویسی میکنم و با علم کامپیوتر که هر روز هم داره آبدیت میشه چیزی یادبگیرم .. اگه بخوام از یک شیوه استفاده کنم انگار دارم درجا میزنم ...

rezaprogrammer
پنج شنبه 30 آذر 1391, 12:50 عصر
نوآوری خوبه ولی قبلش باید تمام جوانب رو بررسی کنی و مطمئن باشی که می تونه بدردت بخوره و تو رو از اهدافت بازنداره.
خب در مورد امنیت اطلاعات شما باید یک سیستم بک آپ گیری قوی داشته باشی فرقی نداره نرم افزارت اطلاعات رو تو یک بانک میریزه یا چند بانک امنیت اطلاعات در نرم افزار شما باید بالا باشه. مثلاً وقتی برنامه خارج میشه باید بتونی بک آپ اتوماتیک رو بگیری یا تمهیدات دیگه برای حفظ اطلاعات

zarifcomputer
پنج شنبه 30 آذر 1391, 14:34 عصر
نوآوری خوبه ولی قبلش باید تمام جوانب رو بررسی کنی و مطمئن باشی که می تونه بدردت بخوره و تو رو از اهدافت بازنداره.

در این مورد من هم با شما موافقم


خب در مورد امنیت اطلاعات شما باید یک سیستم بک آپ گیری قوی داشته باشی فرقی نداره نرم افزارت اطلاعات رو تو یک بانک میریزه یا چند بانک امنیت اطلاعات در نرم افزار شما باید بالا باشه. مثلاً وقتی برنامه خارج میشه باید بتونی بک آپ اتوماتیک رو بگیری یا تمهیدات دیگه برای حفظ اطلاعات

فکر میکنم بک آپ گیری بحث تولید یک آرشیو قوی و مطمئن از نظر بازیابی آسان و امن باشه و امنیت بحث دسترسی به اطلاعات و رعایت Security باشه .
به نظر بنده نباید این دو باحث را با هم مخلوط کنیم چون هر کدام به طور خاص اهداف مشخصی دارند و هر کدام در مقوله خودشون بحث بزرگ و پر شاخ و برگی هستند.
موضوع بر سر دلایل به کار گیری یک یا چند دیتابیس است که کدام بهتر است . بنده به دلایلی که قبلا عرض کردم روش نگهداری دیتابیس هر سال را به صورت جداگانه پیشنهاد کردم و فکر میکنم تنها موضوعی که شاید بهتر باشه در مورد آن بحث کنیم دسترسی نرم افزار به دیتابیس های هر سال با انتخاب کاربر از اینترفیس برنامه است!!!(عجب جمله ای شد)
اگه اشتباه نکنم راه حل شما نگهداری اطلاعات هر سال در قالب یک رکورد در یک جدول بود و فکر میکنم همین موضوع باعث میشه شما مجبور باشید از یک دیتابیس استفاده کنید . بنده پیشنهاد میکنم برای نگهداری اطلاعات سالها به جای رکورد های یک جدول از یکی از راه های زیر استفاده کنید :
1- در ابتدایی ترین شکل ممکن استفاده از یک فایل متنی که هر سطر آن حاوی اطلاعات یک سال است (هر سطر معادل یک رکورد از جدول مورد نظر)
2- استفاده از یک فایل ini که در گذشته برای نرم افزار های ویندوزی رایج بوده .البته الان کمتر مورد استفاده قرار میگیره(این فایل هم یک فایل متنی هست)
3- استفاده از یک فایل XML
4- اگر صحبت از یک وب اپلیکیشن است میتوانید این اطلاعات را در فایل WebConfig نگهداری کنید
5- در حالت پیشرفته تر و برای جلوگیری از دستکاری فایل مورد نظر میتونید یک فایل باینری (StreamFile یا FileStream) ایجاد کرده و اطلاعات را به صورت Record در این فایل بنویسید . حتی میتونید این اطلاعات را قبل از نوشتن Encrypt کرده و بعد در فایل بنویسید.
6- یک راه هم استفاده از رجیستری ویندوز است که بنده توصیه نمیکنم.
7- راه دیگر اینکه اگر برای نرم افزار خود از قفل نرم افزاری استفاده میکنید میتوانید این اطلاعات را در بخشی از قفل نرم افزاری قرار دهید که هم باعث میشه امنیت محصولتون بالاتر بره و هم به خودی خود جای مناسبی برای این کار هست . فقط باید الگوریتم مناسبی برای این کار اتخاذ کنید که منطق قفل دچار اشکال نباشه و برنامه به درستی کار کنه
شاید راه حل های دیگری هم باشه که به ذهن بنده نمیرسه .
دوستان اگر کمک کنند ممنون میشم.

ehsan-68
پنج شنبه 30 آذر 1391, 14:45 عصر
موضوع بر سر دلایل به کار گیری یک یا چند دیتابیس است که کدام بهتر است . بنده به دلایلی که قبلا عرض کردم روش نگهداری دیتابیس هر سال را به صورت جداگانه پیشنهاد کردم و فکر میکنم تنها موضوعی که شاید بهتر باشه در مورد آن بحث کنیم دسترسی نرم افزار به دیتابیس های هر سال با انتخاب کاربر از اینترفیس برنامه است!!!(عجب جمله ای شد)

:متعجب: :لبخند: :تشویق:

منم با همه اینا موافقم ...

فعلا با استفاده از دیتابیس هایه جداگانه برایه هر سال دارم کار میکنم که خدارشکر دارم به جاهای خوبی میرسم ... ولی هنوز کار داره ...

باز هم از نظرات دوستان ممنونم ...