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