PDA

View Full Version : کمک در تحلیل سیستم دانش آموزی



veniz2008
چهارشنبه 28 تیر 1391, 17:33 عصر
سلام دوستان،یه پروژه درباره سیستم دانش اموزی دارم که درباره بعضی قسمت هاش شک دارم،ممنون میشم دوستان یک به یک و با ذکر دلیل راه درست رو بگن.
1. در مورد ثبت تاریخ در سیستم: بین نوع رشته ای (varchar یا nvarchar) یا datetime تردید داشتم. چندتا تاپیک که خوندم نتیجه گرفتم که از نوع رشته ای مثلا بصورت 1391/07/21 ذخیره کنم،اگه اعداد رو فارسی وارد کنیم( مثل ۲۰۰۳) و از نوع varchar استفاده کنیم کلا بصورت علامت سوال ذخیره میشه. فرض کنیم nvarchar بگیریم، در اینصورت بدون هیچ مشکلی ذخیره میشه ولی موقع جستجو به مشکل برمیخورم. فرض کنید دو تا رکورد با مقادیر ۲۰۰۳ و 2003 (یعنی یکی با اعداد فارسی و یکی با اعداد انگلیسی) توی بانک ذخیره شده باشن و من توی شرط جستجوم بگم که رکوردهایی رو پیدا کن که سال اونها 2003 باشه، در اینصورت فقط یک رکورد رو پیدا میکنه در صورتیکه من دو رکورد دارم، برای حل این مشکل چکار کنم؟
2.در قسمت های مختلف سیستم من باید سال آزمون رو برای انجام کارهای مختلف داشته باشم،اینم بگم سال آزمون از تیرماه سال جاری شروع میشه و تا تیرماه سال آینده ادامه داره( یعنی الان سال 91 هست و تا تیرماه سال آینده همچنان سال آزمون 91 خواهد بود). حالا سوالم اینه: مطمئن ترین و بهترین راه برای بدست آوردن سال چیه؟تنها چیزی که به ذهن خودم اومده استفاده از تاریخ سیستم و تبدیل اون به تاریخ شمسی هست، ولی فرض کنید به هر دلیلی تاریخ سیستم اشتباه باشه در اینصورت سال آزمون هم اشتباه ثبت خواهد شد. پیشنهاد شما چیه؟
3.کل دانش اموزان ثبت نامی برای هر سال حدود 4000 نفر هست و هزینه های هر دانش آموز برای یک سال حدود 250 هزار تومان میشه. برای فیلدهای مرتبط با قیمت چه نوعی رو پیشنهاد میکنید؟. با توجه به تعداد دانش آموزان و مبلغ کل شهریه هر دانش اموز، خودم نظرم روی int هست. اگر اشتباه نکنم توی help خود sql زده 31^2 ،حالا پیشنهاد شما چیه؟( int یا decimal یا ...؟)

Mahmoud.Afrad
پنج شنبه 29 تیر 1391, 14:15 عصر
فیلد تاریخ رو همون varchar بذارید منتها در برنامه ای که مینویسید باید تاریخ ها رو به صورت لاتین ذخیره کنید. یعنی مثلا اجازه تغییر زبان صفحه کلید به فارسی رو ندید و اگر شخص صفحه کلید رو به فارسی تغییر داد شما برگردونید به انگلیسی. البته اگر مثلا تکست باکس رو راست به چپ کنید اعداد فارسی نسون داده میشند و تو ذخیره مشکلی نداره و لاتین ذخیره میشه.
برای تاریخ هم کاربر رو توجیه کنید که تاریخ سیستم باید دقیق باشه و عواقبش به عهده خودش هست.(البته میتونید آنلاین هم تاریخ رو بگیرید ...)
فیلد قیمت رو هم int بزارید.

baktash.n81@gmail.com
شنبه 31 تیر 1391, 10:08 صبح
از نظر من کاملا بهتره که تاریخ رو بصورت Date نگه دارید ... نمی دونم این دوستمون رو چه حسابی گفته که varchar نگه دارید ...